code: func (w *Wallet) Derive(path accounts.DerivationPath, pin bool) (accounts.Account, error) {
  	w.lock.Lock()
  	defer w.lock.Unlock()
  
  	account, err := w.session.derive(path)
  	if err != nil {
  		return accounts.Account{}, err
  	}
  
  	if pin {
  		pairing := w.Hub.pairing(w)
  		pairing.Accounts[account.Address] = path
  		if err := w.Hub.setPairing(w, pairing); err != nil {
  			return accounts.Account{}, err
  		}
  	}
  
  	return account, nil
  }
docs: // Derive attempts to explicitly derive a hierarchical deterministic account at
  // the specified derivation path. If requested, the derived account will be added
  // to the wallet's tracked account list.