Wallets

Wallets are the heart of any blockchain. A Wallet typically contains multiple accounts, which is typically a public private key pair. The wallet identifies the user or organization on the blockchain and uses the information to generate the digital signature required to exeucte transactions.

Elements provides a custodial wallet system which permits you to store user's crypto assets within elements. In addition to full custodial wallets, Elements also allows the storage of address only permitting the user to receive crypto assets, but not to sign transactions. This can be useful for users who wish to bring their own wallets.

Wallet Properties

The general Wallet properties are as follows.

  • id
  • displayName
  • user - the user which owns the Wallet
  • vault - the Vault which owns the Wallet
  • api - the API with which this wallet is compatible. See Supported Blockchain APIs for more information.
  • networks - a set of networks with which this wallet is compatible. See Supported Blockchain Networks for a list of supported values.
  • preferredAccount - as a single Wallet may contain multiple accounts, this indicates the preferred account. In cases where a Wallet may
  • accounts - a list of all accounts contained within the Wallet.

Note

Blockchain APIs and Blockchain Networks must be compatible in all cases. For example, it is not possible to specify a Wallet that uses the Ethereum API on the Solana Network, as they are incompatible networks.

Wallet Accounts

A Wallet may contain several accounts, each of which is a separate identity on the blockchain. Most blockchains support multiple accounts per Wallet. Practically speaking, most users will have a single account per wallet. However, it is possible to support multiple accounts per wallet.

The wallet account properties are as follows:

  • address - the public address of the account. This field is mandatory.
  • privateKey - the private key of the wallet. This field is optional. However, if left unspecified, then the wallet may not be used to sign transactions. Rather it may be only used to receive currency and NFTs.
  • encrypted - a boolean value to indicate whether or not the private key in the wallet is encrypted.