async def get_box_ids_json(self) -> str:
LOGGER.debug('<STR_LIT>')<EOL>s_ids = set()<EOL>cd_ids = set()<EOL>rr_ids = set()<EOL>for cred in json.loads(await self.get_creds_display_coarse()):<EOL><INDENT>s_ids.add(cred['<STR_LIT>'])<EOL>cd_ids.add(cred['<STR_LIT>'])<EOL>if cred['<STR_LIT>']:<EOL><INDENT>rr_ids.add(cred['<STR_LIT>'])<EOL><DEDENT><DEDENT>rv = json.dumps({<EOL>'<STR_LIT>': list(s_ids),<EOL>'<STR_LIT>': list(cd_ids),<EOL>'<STR_LIT>': list(rr_ids)<EOL>})<EOL>LOGGER.debug('<STR_LIT>', rv)<EOL>return rv<EOL>
Return json object on lists of all unique box identifiers for credentials in wallet:
schema identifiers, credential definition identifiers, and revocation registry identifiers; e.g.,

::

{
    "schema_id": [
        "R17v42T4pk...:2:tombstone:1.2",
        "9cHbp54C8n...:2:business:2.0",
        ...
    ],
    "cred_def_id": [
        "R17v42T4pk...:3:CL:19:0",
        "9cHbp54C8n...:3:CL:37:0",
        ...
    ]
    "rev_reg_id": [
        "R17v42T4pk...:4:R17v42T4pk...:3:CL:19:0:CL_ACCUM:0",
        "R17v42T4pk...:4:R17v42T4pk...:3:CL:19:0:CL_ACCUM:1",
        "9cHbp54C8n...:4:9cHbp54C8n...:3:CL:37:0:CL_ACCUM:0",
        "9cHbp54C8n...:4:9cHbp54C8n...:3:CL:37:0:CL_ACCUM:1",
        "9cHbp54C8n...:4:9cHbp54C8n...:3:CL:37:0:CL_ACCUM:2",
        ...
    ]
}

:return: tuple of sets for schema ids, cred def ids, rev reg ids