Wallet Concept

A wallet is a logical bundle of addresses, keys, and features required for transactions. You can make multiple wallets per platform, and each platform can have multiple wallets. A wallet can have multiple addresses and keys.

Figure 1: Wallet Concept

Figure 1: Wallet Concept

You may store coins and tokens of the same platform together in a single wallet. However, you can’t store assets from different platforms in the same wallet. For example, if you use Bitcoin and Ethereum platforms, you should have separate wallets. But if you have ETH and Ethereum-based tokens, they can be stored in the same wallet.



Address Types

A wallet can have multiple addresses and keys. There are three types of addresses, and they have the following characteristics.

Figure 2: Wallet address types

Figure 2: Wallet address types

1. Main Address

A main address is the address that represents a wallet, and a wallet can have only one main address. Clients may create the main address themselves when making a wallet, or Octet generates one automatically. The private key for the main address can be managed by the respective client and Octet together, or else Octet can do it for you.

  • Custodial wallets use their main address to store all assets, so it is required to have a main address.
  • For semi-custodial wallets, assets are stored, deposited, and withdrawn on each child address, so the main address may not be used.

2. Child Address

Child addresses are subsidiary addresses of main addresses, and generally, one child address is generated for each end user. Child addresses are sequentially generated by using HD mnemonics. Mnemonics are managed by Octet, so the private key for each child address is managed by Octet as well.

  • For custodial wallets, child addresses only work as deposit addresses. Assets in child addresses are gathered to the main address, and may be withdrawn from the main address.
  • Both deposit and withdrawal are available for semi-custodial wallets, which makes the child addresses more important.

3. Fee Address

A fee address is the address to recharge fees for the child addresses, and only one exists per wallet. Fee addresses are only used for platforms that service tokens and are generated automatically by the Octet system. The private key for the fee address is managed by Octet.





Wallet Types

Custodial WalletSemi-custodial Wallet
Storing Assets Store in the main addressStore in the main address
Store in the child address
Gathering AvailableNot available
Withdrawal Withdraw from the main addressWithdraw from the main address
Withdraw from the child address

1. Custodial Wallet

To build centralized services such as exchanges or wallets, you must use a custodial wallet. For a custodial wallet, assets deposited in child addresses are gathered at the main address. The gathered assets are stored in the main address, and you may withdraw them from that address only.


Figure 3: Structure of a Custodial Wallet

Figure 3: Structure of a Custodial Wallet

Examples

  • Centralized exchanges (Binance, Bithumb, etc.)
  • Custodial wallets (Tokenbank, Klip, etc.)
  • P2E games

2. Semi-custodial Wallet

To comply with the travel rule or to be compatible with decentralized services such as DeFi, we recommend using semi-custodial wallets. Assets deposited in semi-custodial wallets are not gathered at the main address. Each asset remains in the child address and can be withdrawn from the child address (it can be transferred to and from the main address as well).

Figure 4: Structure of a Semi-custodial Wallet

Figure 4: Structure of a Semi-custodial Wallet

Examples

  • Using DeFi services with a custodial wallet