{
    "appName": "kernel.aragonpm.eth",
    "roles": [
        {
            "name": "Manage apps",
            "id": "APP_MANAGER_ROLE",
            "bytes": "0xb6d92708f3d4817afc106147d969e229ced5c46e65e0a5002a0d391287762bd0"
        },
        {
            "name": "Manage profile",
            "id": "MANAGE_PROFILE_ROLE",
            "bytes": "0x675b358b95ae7561136697fcc3302da54a334ac7c199d53621288290fb863f5c"
        }
    ],
    "functions": [
        {
            "sig": "initialize(address,address)",
            "roles": [],
            "notice": "Initializes a kernel instance along with its ACL and sets `_permissionsCreator` as the entity that can create other permissions"
        },
        {
            "sig": "newAppInstance(bytes32,address)",
            "roles": ["APP_MANAGER_ROLE"],
            "notice": "Create a new upgradeable instance of `_appId` app linked to the Kernel, setting its code to `_appBase`"
        },
        {
            "sig": "newAppInstance(bytes32,address,bytes,bool)",
            "roles": ["APP_MANAGER_ROLE"],
            "notice": "Create a new upgradeable instance of `_appId` app linked to the Kernel, setting its code to `_appBase`. `_setDefault ? 'Also sets it as the default app instance.':''`"
        },
        {
            "sig": "newPinnedAppInstance(bytes32,address)",
            "roles": ["APP_MANAGER_ROLE"],
            "notice": "Create a new non-upgradeable instance of `_appId` app linked to the Kernel, setting its code to `_appBase`."
        },
        {
            "sig": "newPinnedAppInstance(bytes32,address,bytes,bool)",
            "roles": ["APP_MANAGER_ROLE"],
            "notice": "Create a new non-upgradeable instance of `_appId` app linked to the Kernel, setting its code to `_appBase`. `_setDefault ? 'Also sets it as the default app instance.':''`"
        },
        {
            "sig": "setApp(bytes32,bytes32,address)",
            "roles": ["APP_MANAGER_ROLE"],
            "notice": "Set the resolving address of `_appId` in namespace `_namespace` to `_app`"
        },
        {
            "sig": "setRecoveryVaultAppId(bytes32)",
            "roles": ["APP_MANAGER_ROLE"],
            "notice": null
        },
        {
            "sig": "transferToVault(address)",
            "roles": [],
            "notice": "Send funds to recovery Vault. This contract should never receive funds, but in case it does, this function allows one to recover them."
        }
    ]
}
