How to compress an hexadecimal number into a short string?

This code

#include <SoftwareSerial.h> 

SoftwareSerial softSerial(2, 3); 

#include "SparkFun_UHF_RFID_Reader.h" 
RFID nano; 

#define BUZZER1 10

#define BUZZER2 9

boolean tagDetected; 
long lastSeen = 0; 
int counter = 0; 

void setup()
{
  Serial.begin(115200);

  pinMode(BUZZER1, OUTPUT);
  pinMode(BUZZER2, OUTPUT);

  digitalWrite(BUZZER2, LOW); 

  while (!Serial); 

  if (setupNano(38400) == false) 
  {
    Serial.println(F("Das Modul hat nicht reagiert. Bitte überprüfen Sie die Anschlüsse."));
    while (1); 
  }

  nano.setRegion(REGION_NORTHAMERICA); 

  
  nano.setReadPower(2700); 
  

  nano.startReading(); 

  Serial.println("Scannprozess läuft!");

  lowBeep(); 
  tagDetected = false;
}

void loop()
{
  byte myEPC[12]; 
  byte myEPClength;
  byte responseType = 0;

  byte tagEPCBytes[50][12];

  if (nano.check() == true) 
  {
    byte responseType = nano.parseResponse(); 

    if (responseType == RESPONSE_IS_TAGFOUND)
    {      
      long timeStamp = nano.getTagTimestamp(); 
      byte tagEPCBytes = nano.getTagEPCBytes(); 

      Serial.print(F("RFID-Tag detektiert: "));
      Serial.println(counter++);
     
      
      Serial.print(F("RFID-Daten EPC["));
      for (byte x = 0 ; x < tagEPCBytes ; x++)
      {
        if (nano.msg[31 + x] < 0x10) Serial.print(F("0")); 
        Serial.print(nano.msg[31 + x], HEX);
        Serial.print(F(" "));
      }      
      Serial.println(F(" "));

      
      Serial.print(F("Bin-Daten["));
      for (byte x = 0 ; x < tagEPCBytes ; x++)
      { 
        tagEPCBytes[(byte *) &counter][x] = nano.msg[31 + x];
        Serial.print(nano.msg[31 + x]);
        if (x != 11) Serial.print(F(" "));
      }
      Serial.print(F("] "));
      
      if (tagDetected == false) 
      {
        tagDetected = true;
        highBeep();
      }
      else if (millis() - lastSeen > 250) 
      {
        highBeep();
      }
      lastSeen = millis();

    }
  }

  if (tagDetected == true && (millis() - lastSeen) > 1000)
  {
    Serial.println(F("Kein RFID-Tag gefunden..."));

    tagDetected = false;
    lowBeep();
  }

  
  if (Serial.available())
  {
    nano.stopReading(); 

    Serial.read(); 
    Serial.println("Scannen angehalten. Drücken Sie die Taste, um fortzufahren.");
    while (!Serial.available());
    Serial.read(); 

    nano.startReading(); 
  }
}



boolean setupNano(long baudRate)
{
  nano.begin(softSerial); 

  

  
  
  softSerial.begin(baudRate); 
  while (!softSerial); 

  
  while (softSerial.available()) softSerial.read();

  nano.getVersion();

  if (nano.msg[0] == ERROR_WRONG_OPCODE_RESPONSE)
  {
    
    nano.stopReading();

    Serial.println(F("Modul liest kontinuierlich. Modul soll kontinuierlich lesen beenden...."));

    delay(1500);
  }
  else
  {
    
    softSerial.begin(115200); 

    nano.setBaud(baudRate); 

    softSerial.begin(baudRate); 
  }

  
  nano.getVersion();
  if (nano.msg[0] != ALL_GOOD) return (false); 

  
  nano.setTagProtocol(); 

  nano.setAntennaPort(); 

  return (true); 
}

void lowBeep()
{
  tone(BUZZER1, 130, 150); 
  
}

void highBeep()
{
  tone(BUZZER1, 2093, 150); 
  
}

gives me following Error

error: invalid types 'byte {aka unsigned char}[byte {aka unsigned char}]' for array subscript

         tagEPCBytes[(byte *) &counter][x] = nano.msg[31 + x];

                                         ^

exit status 1
invalid types 'byte {aka unsigned char}[byte {aka unsigned char}]' for array subscript