From ba12a011ea20e3fd3765646d1e7a91cff6e37573 Mon Sep 17 00:00:00 2001 From: Alexandra Tran Date: Fri, 26 Sep 2025 17:08:16 -0700 Subject: [PATCH 1/8] Add ERC-7715 concept page --- delegation-toolkit/concepts/erc7715.md | 45 +++++++++++++++++++ .../execute-on-metamask-user-behalf.md | 8 ++-- delegation-toolkit/index.md | 4 +- gator-sidebar.js | 1 + 4 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 delegation-toolkit/concepts/erc7715.md diff --git a/delegation-toolkit/concepts/erc7715.md b/delegation-toolkit/concepts/erc7715.md new file mode 100644 index 00000000000..273ac899dd2 --- /dev/null +++ b/delegation-toolkit/concepts/erc7715.md @@ -0,0 +1,45 @@ +--- +description: Learn about MetaMask ERC-7715 permissions. +keywords: [ERC-7715, 7715, permissions, wallet, smart account] +--- + +# ERC-7715 permissions + +The Delegation Toolkit supports [ERC-7715](https://eips.ethereum.org/EIPS/eip-7715), which lets you request fine-grained permissions from a MetaMask user to execute transactions on their behalf. +For example, a user can grant your dapp permission to spend 10 USDC per day to buy ETH over the course of a month. +Once the permission is granted, your dapp can use the allocated 10 USDC each day to purchase ETH directly from the MetaMask user's account. + +ERC-7715 eliminates the need for users to approve every transaction, which is useful for highly interactive dapps. +It also enables dapps to execute transactions for users without an active wallet connection. + +:::note +This feature requires [MetaMask Flask 12.14.2](/snaps/get-started/install-flask) or later. +::: + +## ERC-7715 permissions lifecycle + +The ERC-7715 permissions lifecycle is as follows: + +1. **Set up a session account** - Set up a session account to execute transactions on behalf of the MetaMask user. + It can be a [smart account](smart-accounts.md) or an externally owned account (EOA). + +2. **Request permissions** - Request permissions from the user. + MetaMask supports multiple ERC-7715 [permission types](#permission-types). + +3. **Set up a Viem client** - Set up a Viem client (the client type depends on the session account type) to redeem permissions. + +4. **Redeem permissions** - Once the permission is granted, the session account redeems the permission. + +See [how to perform executions on a MetaMask user's behalf](../guides/erc7715/execute-on-metamask-user-behalf.md) to get started with the ERC-7715 lifecycle. + +## Permission types + +The Delegation Toolkit currently supports the following types of ERC-7715 permissions: + +- **Native token permissions** - Define how dapps can use users' native tokens. + +- **ERC-20 token permissions** - Define how dapps can use users' ERC-20 tokens. + +## ERC-7715 permissions vs. delegation + +Requesting and redeeming ERC-7715 permissions differ from [creating and redeeming delegations](delegation/index.md). diff --git a/delegation-toolkit/guides/erc7715/execute-on-metamask-user-behalf.md b/delegation-toolkit/guides/erc7715/execute-on-metamask-user-behalf.md index 6adac6f7de9..83a04cf8607 100644 --- a/delegation-toolkit/guides/erc7715/execute-on-metamask-user-behalf.md +++ b/delegation-toolkit/guides/erc7715/execute-on-metamask-user-behalf.md @@ -9,7 +9,7 @@ import TabItem from "@theme/TabItem"; # Perform executions on a MetaMask user's behalf -The Delegation Toolkit supports [ERC-7715](https://eips.ethereum.org/EIPS/eip-7715), which lets you request fine-grained permissions from a MetaMask user to execute transactions on their +[ERC-7715 permissions](../../concepts/erc7715.md) are fine-grained permissions that your dapp can request from a MetaMask user to execute transactions on their behalf. For example, a user can grant your dapp permission to spend 10 USDC per day to buy ETH over the course of a month. Once the permission is granted, your dapp can use the allocated 10 USDC each day to purchase ETH directly from the MetaMask user's account. @@ -41,7 +41,7 @@ const walletClient = createWalletClient({ ### 2. Set up a Public Client Set up a [Viem Public Client](https://viem.sh/docs/clients/public) using Viem's `createPublicClient` function. -This client will help you query the account state and interact with blockchain network. +This client will help you query the account state and interact with the blockchain network. ```typescript import { createPublicClient, http } from "viem"; @@ -60,7 +60,7 @@ to request ERC-7715 permissions. This account is responsible for executing trans on behalf of the user. - + ```typescript import { privateKeyToAccount } from "viem/accounts"; @@ -183,7 +183,7 @@ const sessionAccountWalletClient = createWalletClient({ ### 6. Redeem ERC-7715 permissions -The session account can now [redeem the delegation](../experimental/erc-7710-redeem-delegations.md). The redeem transaction is sent to the `DelegationManager` contract, which validates the delegation and executes actions on the user's behalf. +The session account can now redeem the delegation. The redeem transaction is sent to the `DelegationManager` contract, which validates the delegation and executes actions on the user's behalf. To redeem the permissions, use the appropriate client action based on your session account type: diff --git a/delegation-toolkit/index.md b/delegation-toolkit/index.md index 26179dc79cc..72712785c97 100644 --- a/delegation-toolkit/index.md +++ b/delegation-toolkit/index.md @@ -7,7 +7,7 @@ keywords: [MetaMask, delegation toolkit, smart accounts] import CardList from "@site/src/components/CardList" -# Embed MetaMask Smart Accounts using the Delegation Toolkit +# Create MetaMask Smart Accounts using the Delegation Toolkit The MetaMask Delegation Toolkit is a [Viem](https://viem.sh/)-based collection of tools for embedding [MetaMask Smart Accounts](concepts/smart-accounts.md) into dapps. Smart accounts support programmable account behavior and advanced features like delegated permissions, multi-signature approvals, and gas abstraction. @@ -16,6 +16,8 @@ Smart accounts support programmable account behavior and advanced features like Delegation is powered by the toolkit's Delegation Framework, which defines how permissions are created, shared, and enforced. +MetaMask Smart Accounts also support [ERC-7715 permissions](concepts/erc7715.md), which are fine-grained permissions dapps can request from MetaMask users. + ## Why use the toolkit? The toolkit enables developers to create frictionless new experiences based on programmable account behavior and granular permission diff --git a/gator-sidebar.js b/gator-sidebar.js index 529e21e2218..c3278e63790 100644 --- a/gator-sidebar.js +++ b/gator-sidebar.js @@ -43,6 +43,7 @@ const sidebar = { 'concepts/delegation/caveat-enforcers', ], }, + 'concepts/erc7715', ], }, { From 411af6f2535efa3150acd1fe3cb40d7ab6a246d1 Mon Sep 17 00:00:00 2001 From: Alexandra Carrillo Date: Mon, 29 Sep 2025 21:40:42 -0700 Subject: [PATCH 2/8] add technical overview --- delegation-toolkit/concepts/erc7715.md | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/delegation-toolkit/concepts/erc7715.md b/delegation-toolkit/concepts/erc7715.md index 273ac899dd2..ec3d2898d26 100644 --- a/delegation-toolkit/concepts/erc7715.md +++ b/delegation-toolkit/concepts/erc7715.md @@ -16,6 +16,26 @@ It also enables dapps to execute transactions for users without an active wallet This feature requires [MetaMask Flask 12.14.2](/snaps/get-started/install-flask) or later. ::: +## ERC-7715 technical overview + +[ERC-7715](https://eips.ethereum.org/EIPS/eip-7715) defines a JSON-RPC method `wallet_grantPermissions`. Dapps can use this method to request a wallet to grant the dapp permission to execute transactions on a user's behalf. +`wallet_grantPermissions` includes a `signer` parameter, which identifies the entity requesting or managing the permission. +Common signer implementations include wallet signers, single key and multisig signers, and account signers. + +The Delegation Toolkit's implementation uses an account signer. +A session account is created and used for the single purpose of requesting and redeeming ERC-7715 permissions, and does not contain tokens. +The account can be granted with permissions and redeem them as specified in [ERC-7710](https://eips.ethereum.org/EIPS/eip-7710). +The account can be a smart account or an externally owned account (EOA). + + +The MetaMask user that the session account requests permissions from must be upgraded to a [MetaMask smart account](smart-accounts.md). + +:::info ERC-7715 vs. delegations +ERC-7715 expands on regular [delegations](delegation/index.md) by enabling permission sharing *via the MetaMask browser extension*. +Regular delegations cannot be signed through the MetaMask extension, because if a dapp requests a delegation without constraints, the whole wallet can be exposed to the dapp. +In contrast, ERC-7715 requires a [permission type](#permission-types) which displays a readable confirmation for the MetaMask user. +::: + ## ERC-7715 permissions lifecycle The ERC-7715 permissions lifecycle is as follows: @@ -39,7 +59,3 @@ The Delegation Toolkit currently supports the following types of ERC-7715 permis - **Native token permissions** - Define how dapps can use users' native tokens. - **ERC-20 token permissions** - Define how dapps can use users' ERC-20 tokens. - -## ERC-7715 permissions vs. delegation - -Requesting and redeeming ERC-7715 permissions differ from [creating and redeeming delegations](delegation/index.md). From 6ba401b182910d6f9d6d4576c38caf50798525f4 Mon Sep 17 00:00:00 2001 From: Alexandra Carrillo Date: Mon, 29 Sep 2025 21:52:50 -0700 Subject: [PATCH 3/8] minor edits --- delegation-toolkit/concepts/erc7715.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/delegation-toolkit/concepts/erc7715.md b/delegation-toolkit/concepts/erc7715.md index ec3d2898d26..724730e6cc6 100644 --- a/delegation-toolkit/concepts/erc7715.md +++ b/delegation-toolkit/concepts/erc7715.md @@ -18,15 +18,15 @@ This feature requires [MetaMask Flask 12.14.2](/snaps/get-started/install-flask) ## ERC-7715 technical overview -[ERC-7715](https://eips.ethereum.org/EIPS/eip-7715) defines a JSON-RPC method `wallet_grantPermissions`. Dapps can use this method to request a wallet to grant the dapp permission to execute transactions on a user's behalf. -`wallet_grantPermissions` includes a `signer` parameter, which identifies the entity requesting or managing the permission. +[ERC-7715](https://eips.ethereum.org/EIPS/eip-7715) defines a JSON-RPC method `wallet_grantPermissions`. +Dapps can use this method to request a wallet to grant the dapp permission to execute transactions on a user's behalf. +`wallet_grantPermissions` requires a `signer` parameter, which identifies the entity requesting or managing the permission. Common signer implementations include wallet signers, single key and multisig signers, and account signers. The Delegation Toolkit's implementation uses an account signer. A session account is created and used for the single purpose of requesting and redeeming ERC-7715 permissions, and does not contain tokens. -The account can be granted with permissions and redeem them as specified in [ERC-7710](https://eips.ethereum.org/EIPS/eip-7710). -The account can be a smart account or an externally owned account (EOA). - +The session account can be granted with permissions and redeem them as specified in [ERC-7710](https://eips.ethereum.org/EIPS/eip-7710). +The session account can be a smart account or an externally owned account (EOA). The MetaMask user that the session account requests permissions from must be upgraded to a [MetaMask smart account](smart-accounts.md). From 7e85442c34fa0653dfc3869660f6c5744dade2b0 Mon Sep 17 00:00:00 2001 From: Alexandra Carrillo Date: Tue, 7 Oct 2025 18:12:46 -0700 Subject: [PATCH 4/8] edits and add image --- delegation-toolkit/assets/erc7715-request.png | Bin 0 -> 89400 bytes delegation-toolkit/concepts/erc7715.md | 29 +++++++++--------- 2 files changed, 15 insertions(+), 14 deletions(-) create mode 100644 delegation-toolkit/assets/erc7715-request.png diff --git a/delegation-toolkit/assets/erc7715-request.png b/delegation-toolkit/assets/erc7715-request.png new file mode 100644 index 0000000000000000000000000000000000000000..01eef3bda26fed5bd1fc313ebf6fead96fc71bb7 GIT binary patch literal 89400 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 W{1XDoJRA_fpPZDkWQn+m|NjB{i=4p# literal 0 HcmV?d00001 diff --git a/delegation-toolkit/concepts/erc7715.md b/delegation-toolkit/concepts/erc7715.md index 724730e6cc6..168d829cae4 100644 --- a/delegation-toolkit/concepts/erc7715.md +++ b/delegation-toolkit/concepts/erc7715.md @@ -30,11 +30,21 @@ The session account can be a smart account or an externally owned account (EOA). The MetaMask user that the session account requests permissions from must be upgraded to a [MetaMask smart account](smart-accounts.md). -:::info ERC-7715 vs. delegations +## ERC-7715 vs. delegations + ERC-7715 expands on regular [delegations](delegation/index.md) by enabling permission sharing *via the MetaMask browser extension*. + +With a regular delegation, the dapp constructs the delegation and requests the user to sign it. +Delegated permissions are not human-readable, so it is up to the dapp to provide context for the user. Regular delegations cannot be signed through the MetaMask extension, because if a dapp requests a delegation without constraints, the whole wallet can be exposed to the dapp. -In contrast, ERC-7715 requires a [permission type](#permission-types) which displays a readable confirmation for the MetaMask user. -::: + +In contrast, ERC-7715 enables dapps (and AI agents) to request permissions from a user directly via the MetaMask extension. +ERC-7715 requires a permission configuration which displays a human-readable confirmation for the MetaMask user. +For example, the following ERC-7715 permission request displays a rich UI including the start time, amount, and period duration for an [ERC-20 token periodic transfer](../guides/erc7715/use-permissions/erc20-token.md): + +

+ERC-7715 request +

## ERC-7715 permissions lifecycle @@ -44,18 +54,9 @@ The ERC-7715 permissions lifecycle is as follows: It can be a [smart account](smart-accounts.md) or an externally owned account (EOA). 2. **Request permissions** - Request permissions from the user. - MetaMask supports multiple ERC-7715 [permission types](#permission-types). - -3. **Set up a Viem client** - Set up a Viem client (the client type depends on the session account type) to redeem permissions. + The Delegation Toolkit supports [ERC-20 token permissions](../guides/erc7715/use-permissions/erc20-token.md) and + [native token permissions](../guides/erc7715/use-permissions/native-token.md). 4. **Redeem permissions** - Once the permission is granted, the session account redeems the permission. See [how to perform executions on a MetaMask user's behalf](../guides/erc7715/execute-on-metamask-user-behalf.md) to get started with the ERC-7715 lifecycle. - -## Permission types - -The Delegation Toolkit currently supports the following types of ERC-7715 permissions: - -- **Native token permissions** - Define how dapps can use users' native tokens. - -- **ERC-20 token permissions** - Define how dapps can use users' ERC-20 tokens. From b5c76eb392fc3a9d8d7d31618564b34d85e07e50 Mon Sep 17 00:00:00 2001 From: Alexandra Carrillo Date: Tue, 7 Oct 2025 18:17:48 -0700 Subject: [PATCH 5/8] edits --- delegation-toolkit/concepts/erc7715.md | 2 +- .../guides/erc7715/execute-on-metamask-user-behalf.md | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/delegation-toolkit/concepts/erc7715.md b/delegation-toolkit/concepts/erc7715.md index 168d829cae4..4b56d3dada1 100644 --- a/delegation-toolkit/concepts/erc7715.md +++ b/delegation-toolkit/concepts/erc7715.md @@ -57,6 +57,6 @@ The ERC-7715 permissions lifecycle is as follows: The Delegation Toolkit supports [ERC-20 token permissions](../guides/erc7715/use-permissions/erc20-token.md) and [native token permissions](../guides/erc7715/use-permissions/native-token.md). -4. **Redeem permissions** - Once the permission is granted, the session account redeems the permission. +4. **Redeem permissions** - Once the permission is granted, the session account can redeem the permission, executing on the user's behalf. See [how to perform executions on a MetaMask user's behalf](../guides/erc7715/execute-on-metamask-user-behalf.md) to get started with the ERC-7715 lifecycle. diff --git a/delegation-toolkit/guides/erc7715/execute-on-metamask-user-behalf.md b/delegation-toolkit/guides/erc7715/execute-on-metamask-user-behalf.md index 83a04cf8607..1ee10eb09fd 100644 --- a/delegation-toolkit/guides/erc7715/execute-on-metamask-user-behalf.md +++ b/delegation-toolkit/guides/erc7715/execute-on-metamask-user-behalf.md @@ -97,8 +97,8 @@ const sessionAccount = privateKeyToAccount("0x..."); ### 4. Request ERC-7715 permissions -Request ERC-7715 permissions from the user. In this example, you'll request an ERC-20 periodic -permission using the `grantPermissions` method. +Request ERC-7715 permissions from the user. In this example, you'll request an +[ERC-20 periodic permission](use-permissions/erc20-token.md#erc-20-periodic-permission) using the `grantPermissions` method. ```typescript import { sepolia as chain } from "viem/chains"; @@ -257,4 +257,9 @@ export const calldata = encodeFunctionData({ ```
-
\ No newline at end of file + + +## Next steps + +See how to configure different [ERC-20 token permissions](use-permissions/erc20-token.md) and +[native token permissions](use-permissions/native-token.md). From 11d630a0c3c1c9f42bb2472a80efead1cbc17c7f Mon Sep 17 00:00:00 2001 From: Alexandra Carrillo Date: Tue, 7 Oct 2025 18:20:43 -0700 Subject: [PATCH 6/8] minor edit --- delegation-toolkit/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/delegation-toolkit/index.md b/delegation-toolkit/index.md index 72712785c97..91e49731929 100644 --- a/delegation-toolkit/index.md +++ b/delegation-toolkit/index.md @@ -16,7 +16,7 @@ Smart accounts support programmable account behavior and advanced features like Delegation is powered by the toolkit's Delegation Framework, which defines how permissions are created, shared, and enforced. -MetaMask Smart Accounts also support [ERC-7715 permissions](concepts/erc7715.md), which are fine-grained permissions dapps can request from MetaMask users. +MetaMask Smart Accounts also support [ERC-7715 permissions](concepts/erc7715.md), which are fine-grained permissions dapps can request from users directly via the MetaMask browser extension. ## Why use the toolkit? From fa326ad03b84b5761e5f7aab15fe0c28c4b33ec7 Mon Sep 17 00:00:00 2001 From: Alexandra Carrillo Date: Tue, 7 Oct 2025 20:56:00 -0700 Subject: [PATCH 7/8] minor edits --- delegation-toolkit/concepts/erc7715.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/delegation-toolkit/concepts/erc7715.md b/delegation-toolkit/concepts/erc7715.md index 4b56d3dada1..589f5aa5aca 100644 --- a/delegation-toolkit/concepts/erc7715.md +++ b/delegation-toolkit/concepts/erc7715.md @@ -34,13 +34,13 @@ The MetaMask user that the session account requests permissions from must be upg ERC-7715 expands on regular [delegations](delegation/index.md) by enabling permission sharing *via the MetaMask browser extension*. -With a regular delegation, the dapp constructs the delegation and requests the user to sign it. -Delegated permissions are not human-readable, so it is up to the dapp to provide context for the user. +With regular delegations, the dapp constructs a delegation and requests the user to sign it. +These delegations are not human-readable, so it is the dapp's responsibility to provide context for the user. Regular delegations cannot be signed through the MetaMask extension, because if a dapp requests a delegation without constraints, the whole wallet can be exposed to the dapp. In contrast, ERC-7715 enables dapps (and AI agents) to request permissions from a user directly via the MetaMask extension. ERC-7715 requires a permission configuration which displays a human-readable confirmation for the MetaMask user. -For example, the following ERC-7715 permission request displays a rich UI including the start time, amount, and period duration for an [ERC-20 token periodic transfer](../guides/erc7715/use-permissions/erc20-token.md): +For example, the following ERC-7715 permission request displays a rich UI including the start time, amount, and period duration for an [ERC-20 token periodic transfer](../guides/erc7715/use-permissions/erc20-token.md#erc-20-periodic-permission):

ERC-7715 request From 7730883fd36f47e53c91ae6346bf6514ca47f954 Mon Sep 17 00:00:00 2001 From: Alexandra Carrillo Date: Wed, 8 Oct 2025 14:30:12 -0700 Subject: [PATCH 8/8] edits --- delegation-toolkit/concepts/erc7715.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/delegation-toolkit/concepts/erc7715.md b/delegation-toolkit/concepts/erc7715.md index 589f5aa5aca..03f4f8f4f9a 100644 --- a/delegation-toolkit/concepts/erc7715.md +++ b/delegation-toolkit/concepts/erc7715.md @@ -23,8 +23,8 @@ Dapps can use this method to request a wallet to grant the dapp permission to ex `wallet_grantPermissions` requires a `signer` parameter, which identifies the entity requesting or managing the permission. Common signer implementations include wallet signers, single key and multisig signers, and account signers. -The Delegation Toolkit's implementation uses an account signer. -A session account is created and used for the single purpose of requesting and redeeming ERC-7715 permissions, and does not contain tokens. +The Delegation Toolkit supports multiple types of signers, but [an account signer is used in this documentation's examples](../guides/erc7715/execute-on-metamask-users-behalf.md) as a common implementation. +With an account signer, a session account is created and used for the single purpose of requesting and redeeming ERC-7715 permissions, and does not contain tokens. The session account can be granted with permissions and redeem them as specified in [ERC-7710](https://eips.ethereum.org/EIPS/eip-7710). The session account can be a smart account or an externally owned account (EOA). @@ -40,6 +40,8 @@ Regular delegations cannot be signed through the MetaMask extension, because if In contrast, ERC-7715 enables dapps (and AI agents) to request permissions from a user directly via the MetaMask extension. ERC-7715 requires a permission configuration which displays a human-readable confirmation for the MetaMask user. +The user can modify the permission parameters if the request is configured to allow adjustments. + For example, the following ERC-7715 permission request displays a rich UI including the start time, amount, and period duration for an [ERC-20 token periodic transfer](../guides/erc7715/use-permissions/erc20-token.md#erc-20-periodic-permission):