def METHOD_NAME(self) -> dict:
    """
    Return the DDO as a JSON dict.
    :return: dict
    """
    data = {
        "@context": self.context,
        "id": self.did,
        "version": self.version,
        "chainId": self.chain_id,
    }
    data["nftAddress"] = self.nft_address
    services = [value.METHOD_NAME() for value in self.services]
    args = ["metadata", "credentials", "nft", "datatokens", "event", "stats"]
    attrs = list(
        filter(
            lambda attr: not not attr[1],
            map(lambda attr: (attr, getattr(self, attr, None)), args),
        )
    )
    attrs.append(("services", services))
    data.update(attrs)
    return data