Wallets#
A wallet in TrustVault is a BIP32 hierarchical deterministic (HD) key container. It does not hold assets directly — it holds the policy that governs who can sign transactions from it.A unique walletId (UUID) that never changes
A policy defining which keys must sign transactions and policy changes
One or more sub-wallets across one or more chains
Sub-wallets#
A sub-wallet is a child derivation within a wallet. Sub-wallets hold the actual on-chain addresses and balances.A subWalletId follows the format <walletId>/<CHAIN>/<index>, for example:7a9e053c-47fc-489b-956f-2aafbe7d2ff0/ETH/0
Has one or many unique on-chain address derived from the wallet's HD path
Inherits the signing policy of its parent wallet — you cannot set a different policy per sub-wallet
Can hold native assets and tokens for its chain (e.g. an ETH sub-wallet holds ETH and ERC-20 tokens)
Creating sub-wallets#
Sub-wallets are created via the SDK or the createSubWallet GraphQL mutation. The SDK example below is shown. The response includes a trustVaultProvenanceSignature over the public key — verify this against the TrustVault public key before trusting the returned address.Listing sub-wallets#
Use the SDK method getSubWalletsConnection to page through all sub-wallets (the GraphQL equivalent is the user.subWallets query):Key relationships#
Organisation
└── Wallet (policy + walletId)
├── Sub-wallet: <walletId>/BTC/0 → Bitcoin address
├── Sub-wallet: <walletId>/ETH/0 → Ethereum address
└── Sub-wallet: <walletId>/ETH/1 → Ethereum address
All sub-wallets under a wallet share the same signing policy. To apply different signing rules to different assets, create separate wallets.Further reading#
Modified at 2026-10-29 12:46:11