Security Model
App Permissions and Security
An app is executable only when both the user and the platform allow it.
3 sectionsapp-permissions
01
Two independent gates
Wallet-local switch
enableApp / disableApp are stored at the wallet address and can only be managed by the wallet itself.
Platform Registry
The LogicRegistry owner calls setAppStatus(logic, enabled) to allow or block an app globally.
local enabled = true
global allowed = true
---------------------
runtime executable = true02
Registry scope
- The Registry only stores the global safety status of app logic.
- Enabling a logic address requires deployed bytecode.
- The Registry is UUPS-upgradeable and controlled by its owner.
03
Integration checklist
- Read account code, Registry state, and app state from the provider on the active chain.
- Before signing, verify chainId, verifyingContract, deadline, nonce, asset, and recipient.
- enableApp is not an unlimited asset approval; it permits runtime entry while app-specific checks still apply.
- If the Registry blocks an app, executeRuntimeApp rejects it even when it remains locally enabled.