public GeminiDepositAddressResponse requestDepositAddressRaw(String currency) throws IOException {
    try {
      String type = "unknown";
      if (currency.equalsIgnoreCase("BTC")) {
        type = "bitcoin";
      } else if (currency.equalsIgnoreCase("LTC")) {
        type = "litecoin";
      } else if (currency.equalsIgnoreCase("ETH")) {
        type = "ethereum";
      }

      GeminiDepositAddressResponse requestDepositAddressResponse =
          Gemini.requestDeposit(
              apiKey,
              payloadCreator,
              signatureCreator,
              new GeminiDepositAddressRequest(
                  String.valueOf(exchange.getNonceFactory().createValue()), type, "exchange", 0));
      if (requestDepositAddressResponse != null) {
        return requestDepositAddressResponse;
      } else {
        return null;
      }
    } catch (GeminiException e) {
      throw new ExchangeException(e);
    }
  }