code: func (api *API) GetBalances(addresses Hashes, threshold uint64, tips ...Hash) (*Balances, error) {
      if err := Validate(ValidateAddresses(false, addresses...)); err != nil {
  		return nil, err
  	}
  
  	if threshold > 100 {
  		return nil, ErrInvalidThreshold
  	}
  
  	cleanedAddrs, err := checksum.RemoveChecksums(addresses)
  	if err != nil {
  		return nil, err
  	}
  
  	cmd := &GetBalancesCommand{
  		Addresses: cleanedAddrs,
  		Threshold: threshold,
  		Command:   Command{GetBalancesCmd},
  		Tips:      tips,
  	}
  	rsp := &GetBalancesResponse{}
  	if err := api.provider.Send(cmd, rsp); err != nil {
  		return nil, err
  	}
  	balances := &Balances{
  		Balances:  make([]uint64, len(rsp.Balances)),
  		Milestone: rsp.Milestone, MilestoneIndex: rsp.MilestoneIndex,
  	}
  	for i, s := range rsp.Balances {
  		num, err := strconv.ParseUint(s, 10, 64)
  		if err != nil {
  			return nil, err
  		}
  		balances.Balances[i] = num
  	}
  	return balances, err
  }
docs: // GetBalances fetches confirmed balances of the given addresses at the latest solid milestone.