<aside> 🔑 Snaps have three kinds of permissions that can be requested. ****Endowments, Snaps API Methods, and Dynamic permissions permissions

</aside>

Endowments

Endowments are a type of permission that grants a snap additional functionality.

Permission Functionality Privileges Required Score
network-access To access the internet High
rpc Listen to arbitrary JSON-RPC requests using the onRpcRequest method. Reads RPC methods sent for other snaps as well. High
keyring Manages account management Snap accounts. High
transaction-insight Grants snap access to raw tx payloads before they’re signed by the user. Low
webassembly This permission exposes the global WebAssembly API to the snap execution environment. Low
cronjob To run periodic actions for the user Low
ethereum-provider To communicate with a node using MetaMask Low
long-running (Deprecated) Allows a snap to run long past its timeout period Low
lifecycle-hooks To run an action when the user installs or updates the Snap, a Snap must request the endowment:lifecycle-hooks permission. Low

Snaps API Methods

Snaps can communicate with and modify the functionality of MetaMask using the Snaps API. To call each method, you must first request permission in the Snap manifest file.

Permission Functionality Privileges Required Score
snap_getBip32Entropy Gets the SLIP-10 key for the path and curve specified by the method name. High
snap_getBip32PublicKey Gets the BIP-32 public key for the derivation path specified by the path parameter. High
snap_getBip44Entropy Gets the BIP-44 coin_type key for the coin_type number specified by the method name. High
snap_manageAccounts Manages account management Snap accounts. This method is organized into multiple sub-methods which each take their own parameters: High
snap_dialog Displays a dialog in the MetaMask UI. Low
snap_getEntropy Gets a deterministic 256-bit entropy value, specific to the Snap and the user's account. You Low
snap_manageState Allows the Snap to persist up to 100 MB of data to disk and retrieve it at will. Low
snap_notify Displays a notification in MetaMask or natively in the browser. Low

Dynamic Permissions

Dynamic permissions are not requested in the manifest file. Instead, your Snap can acquire dynamic permissions during its lifecycle.

Permission Functionality Privileges Required Score
eth_accounts Allows you to call eth_requestAccounts and check the presence of a permission using wallet_getPermissions. Low

Any permission not listed above is subject to the judgement of the MetaMask team.