<aside> 🔑 Snaps have three kinds of permissions that can be requested. ****Endowments, Snaps API Methods, and Dynamic permissions permissions
</aside>
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 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 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.