code: def get_transactions_details(tx_hash_list, coin_symbol='btc', limit=None, api_key=None):
      
  
      for tx_hash in tx_hash_list:
          assert is_valid_hash(tx_hash)
      assert is_valid_coin_symbol(coin_symbol)
  
      if len(tx_hash_list) == 0:
          return []
      elif len(tx_hash_list) == 1:
          return [get_transaction_details(tx_hash=tx_hash_list[0],
                                          coin_symbol=coin_symbol,
                                          limit=limit,
                                          api_key=api_key
                                          )]
  
          url = make_url(coin_symbol, **dict(txs=';'.join(tx_hash_list)))
  
      params = {}
      if api_key:
          params['token'] = api_key
      if limit:
          params['limit'] = limit
  
      r = requests.get(url, params=params, verify=True, timeout=TIMEOUT_IN_SECONDS)
      response_dict_list = get_valid_json(r)
  
      cleaned_dict_list = []
  
      for response_dict in response_dict_list:
          if 'error' not in response_dict:
              if response_dict['block_height'] > 0:
                  response_dict['confirmed'] = parser.parse(response_dict['confirmed'])
              else:
                  # Blockcypher reports fake times if it's not in a block
                  response_dict['confirmed'] = None
                  response_dict['block_height'] = None
  
              # format this string as a datetime object
              response_dict['received'] = parser.parse(response_dict['received'])
          cleaned_dict_list.append(response_dict)
  
      return cleaned_dict_list
docs: Takes a list of tx_hashes, coin_symbol, and limit and returns the transaction details
  
      Limit applies to both num inputs and num outputs.
      TODO: add offsetting once supported