/// <summary>
        /// Private IR Call: GetAccounts
        /// </summary>
        /// <returns></returns>
        private async Task <List <Balance> > Balances()
        {
            //get the epoch timestamp to be used as the nonce
            //BTC Markets moans about timestamps for some damned reason so we need to get the time from ConvertUnixTime
            var timestamp = APIHelpers.GetCurrentUnixTimestamp().ToString();

            // create the string that needs to be signed
            var stringToSign = BuildStringToSign(ACCOUNT_BALANCE_PATH, null, timestamp);

            // build signature to be included in the http header
            //TODO: API Secret?
            var signature = ComputeHash(ApiSecret, stringToSign);

            lock (RESTClient.Headers)
            {
                RESTClient.Headers.Clear();
                RESTClient.Headers.Add("Accept", HeaderConstants.CONTENT);
                RESTClient.Headers.Add("Accept-Charset", HeaderConstants.ENCODING);
                RESTClient.Headers.Add(HeaderConstants.APIKEY_HEADER, ApiKey);
                RESTClient.Headers.Add(HeaderConstants.SIGNATURE_HEADER, signature);
                RESTClient.Headers.Add(HeaderConstants.TIMESTAMP_HEADER, timestamp);
            }

            List <Balance> result;

            try
            {
                result = await RESTClient.GetAsync <List <Balance> >(ACCOUNT_BALANCE_PATH);
            }
            catch (DeserializationException dex)
            {
                var errorResult = JsonConvert.DeserializeObject <ErrorResult>(dex.Markup);
                throw new BTCMarketsException(errorResult);
            }

            return(result);
        }