import hashlib


def make_artifact_address(namespace_prefix, artifact_id):
    """
    Creates an artifact address which will be used to recover the associated
    UUID if the artifact already exists in the state storage; or, used as a key to
    store the new data into the state storage.
    
    Args:
        namespace_prefix (str):
            The prefix associating with the transaction family
        artifact_id (str): The uuid of the artifact
        
    Returns:
        type: str
        The address-to-be, which associates the uuid and the namespace prefix.
    
    """
    return namespace_prefix + \
        hashlib.sha512(artifact_id.encode("utf-8")).hexdigest()[:64]