code: func (a apiKeyAuthentication) authenticate(req *http.Request, endpoint string, params []byte) error {
  
  	nonce := strconv.FormatInt(time.Now().UTC().UnixNano(), 10)
  	message := nonce + endpoint + string(params) //As per Coinbase Documentation
  
  	req.Header.Set("ACCESS_KEY", a.Key)
  
  	h := hmac.New(sha256.New, []byte(a.Secret))
  	h.Write([]byte(message))
  
  	signature := hex.EncodeToString(h.Sum(nil))
  
  	req.Header.Set("ACCESS_SIGNATURE", signature)
  	req.Header.Set("ACCESS_NONCE", nonce)
  
  	return nil
  }
docs: // API Key + Secret authentication requires a request header of the HMAC SHA-256
  // signature of the "message" as well as an incrementing nonce and the API key