async def send_nym(self, did: str, verkey: str, alias: str = None, role: str = None) -> None:
LOGGER.debug(<EOL>'<STR_LIT>', did, verkey, alias, role or '<STR_LIT>')<EOL>req_json = await ledger.build_nym_request(self.did, did, verkey, alias, role or '<STR_LIT>')<EOL>await self._sign_submit(req_json)<EOL>LOGGER.debug('<STR_LIT>')<EOL>
Send input agent's cryptonym (including DID, verification key, plus optional alias and role)
to the distributed ledger.

Raise BadLedgerTxn on failure.

:param did: agent DID to send to ledger
:param verkey: agent verification key
:param alias: optional alias
:param role: agent role on the ledger; specify one of 'TRUSTEE', 'STEWARD', 'TRUST_ANCHOR',
    or else '' to reset role