code: async def send_nym(self, did: str, verkey: str, alias: str = None, role: str = None) -> None:
          
  
          LOGGER.debug(
              'AgentRegistrar.send_nym >>> did: %s, verkey: %s, alias: %s, role: %s', did, verkey, alias, role or '')
  
          req_json = await ledger.build_nym_request(self.did, did, verkey, alias, role or '')
          await self._sign_submit(req_json)
  
          LOGGER.debug('AgentRegistrar.send_nym <<<')
docs: 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