Semi-opaque: A wallet that uses a single-use public key for each payment to itself (cash back and change transaction), but always uses the same public key for all payments received.
Opaque: A wallet using single-use public keys for each payment received and for each payment to oneself (cash back and change transaction).
### Semi-opaque account derivation scheme
The payment receipt keypair is obtained by derivation `0'` from the semi-opaque account keypair.
For self-payment, it is first necessary to derive the so-called "internal keypair", by derivation `1'` from the semi-opaque account keypair.
Then, each single-use public key is obtained by soft derivation of the "internal public key".
So, the ith payment to oneself is made on the `m/a'/1'/i` keypair, where `a` is the `account_id` of the semi-opaque account.
### Opaque account derivation scheme
For payments to oneself, the scheme is identical to the semi-opaque account scheme.
For external payments, it is first necessary to derive the so-called "external keypair", by derivation `0'` from the opaque account keypair.
Then, each single-use public key is obtained by soft derivation of the "external public key".
So, the ith outward payment is made on the `m/a'/0'/i` keypair, where `a` is the `account_id` of the opaque account.