def gpg_list_profile_keys( blockchain_id, proxy=None, wallet_keys=None, config_dir=None ):
    """
    List all GPG keys in a user profile:
    Return a list of {'identifier': key ID, 'contentUrl': URL to the key data} on success
    Raise on error
    Return {'error': ...} on failure
    """

    config_dir = get_config_dir( config_dir )
    client_config_path = os.path.join(config_dir, blockstack_client.CONFIG_FILENAME )

    if proxy is None:
        proxy = blockstack_client.get_default_proxy( config_path=client_config_path )

    accounts = blockstack_client.list_accounts( blockchain_id, proxy=proxy )
    if 'error' in accounts:
        return accounts

    accounts = accounts.pop('accounts')

    # extract
    ret = []
    for account in accounts:
        if account['service'] != 'pgp':
            continue 

        info = {
            "identifier": account['identifier'],
            "contentUrl": account['contentUrl']
        }

        if 'keyName' in account.keys():
            info['keyName'] = account['keyName']

        ret.append(info)

    return ret