diff --git a/delegation-toolkit/concepts/delegation.md b/delegation-toolkit/concepts/delegation.md index e7176eff491..71e8cd9b6a6 100644 --- a/delegation-toolkit/concepts/delegation.md +++ b/delegation-toolkit/concepts/delegation.md @@ -5,7 +5,7 @@ sidebar_position: 2 # Delegation -*Delegation* is the ability for a [smart account](smart-accounts.md) to grant permission to another smart account +*Delegation* is the ability for a [MetaMask smart account](smart-accounts.md) to grant permission to another smart account or externally owned account (EOA) to perform specific executions on their behalf, under defined rules and restrictions. The account that grants the permission is called the *delegator account*, while the account that receives the permission is called the *delegate account*. diff --git a/delegation-toolkit/concepts/smart-accounts.md b/delegation-toolkit/concepts/smart-accounts.md index 396e68ca41c..dbb47225d4b 100644 --- a/delegation-toolkit/concepts/smart-accounts.md +++ b/delegation-toolkit/concepts/smart-accounts.md @@ -1,23 +1,22 @@ --- -description: Learn about MetaMask smart accounts. +description: Learn about MetaMask Smart Accounts. sidebar_position: 1 --- -# Smart accounts +# MetaMask Smart Accounts -The MetaMask Delegation Toolkit enables you to create and manage MetaMask *smart accounts*. -Smart accounts are [ERC-4337](https://eips.ethereum.org/EIPS/eip-4337) smart contract accounts +The MetaMask Delegation Toolkit enables you to create and manage MetaMask Smart Accounts. +MetaMask Smart Accounts are [ERC-4337](https://eips.ethereum.org/EIPS/eip-4337) smart contract accounts that support programmable account behavior and advanced features such as multi-signature approvals, automated transaction batching, and custom security policies. -Unlike traditional wallets, which rely on private keys for every transaction, MetaMask smart -accounts use smart contracts to govern account logic. +Unlike traditional wallets, which rely on private keys for every transaction, MetaMask Smart Accounts use smart contracts to govern account logic. -Smart accounts are referenced in the toolkit as `MetaMaskSmartAccount`. +MetaMask Smart Accounts are referenced in the toolkit as `MetaMaskSmartAccount`. ## Account abstraction (ERC-4337) Account abstraction, specified by [ERC-4337](https://eips.ethereum.org/EIPS/eip-4337), is a -mechanism that enables users to manage smart accounts containing arbitrary verification logic. +mechanism that enables users to manage smart contract accounts containing arbitrary verification logic. ERC-4337 enables smart contracts to be used as primary accounts in place of traditional private key-based accounts, or externally owned accounts (EOAs). @@ -38,7 +37,7 @@ ERC-4337 introduces the following concepts: ## Smart account implementation types -The MetaMask Delegation Toolkit supports three types of smart accounts, each offering unique features and use cases. +The MetaMask Delegation Toolkit supports three types of MetaMask Smart Accounts, each offering unique features and use cases. See [Configure accounts and signers](../how-to/create-smart-account/configure-accounts-signers.md) to learn how to use these different account types. @@ -65,7 +64,7 @@ This type is referenced in the toolkit as `Implementation.Stateless7702`. ## Smart account flow -The MetaMask smart account flow is as follows: +The MetaMask Smart Accounts flow is as follows: 1. **Account setup** - A user creates a smart account by deploying a smart contract, and initializing it with ownership and security settings. @@ -91,6 +90,6 @@ The MetaMask smart account flow is as follows: ## Delegator accounts -Delegator accounts are a type of smart account that allows users to grant permission to other smart accounts or EOAs +Delegator accounts are a type of MetaMask smart account that allows users to grant permission to other smart accounts or EOAs to perform specific executions on their behalf, under defined rules and restrictions. Learn more about [delegation](delegation.md). diff --git a/delegation-toolkit/experimental/erc-7710-redeem-delegations.md b/delegation-toolkit/experimental/erc-7710-redeem-delegations.md index 4426092bce7..1747929db51 100644 --- a/delegation-toolkit/experimental/erc-7710-redeem-delegations.md +++ b/delegation-toolkit/experimental/erc-7710-redeem-delegations.md @@ -12,7 +12,7 @@ import TabItem from "@theme/TabItem"; This is an experimental feature and may change in future releases. ::: -[ERC-7710](https://eip.tools/eip/7710) introduces a standard way for smart accounts to delegate capabilities to other +[ERC-7710](https://eip.tools/eip/7710) introduces a standard way for MetaMask Smart Accounts to delegate capabilities to other smart accounts or externally owned accounts (EOAs). The MetaMask Delegation Toolkit provides two experimental functions, `erc7710BundlerActions()` and `erc7710WalletActions()`, that let @@ -80,11 +80,11 @@ If you redeem delegations in any other way, it is your responsibility to validat ## Redeem the permission -Redeem a delegation with a [smart account](#redeem-with-a-smart-account) or an [externally owned account (EOA)](#redeem-with-an-eoa). +Redeem a delegation with a [MetaMask smart account](#redeem-with-a-metamask-smart-account) or an [externally owned account (EOA)](#redeem-with-an-eoa). -### Redeem with a smart account +### Redeem with a MetaMask smart account -To redeem a delegation with a smart account, create a [`MetaMaskSmartAccount`](../how-to/create-smart-account/index.md#create-a-metamasksmartaccount) +To redeem a delegation with a MetaMask smart account, create a [`MetaMaskSmartAccount`](../how-to/create-smart-account/index.md#create-a-metamasksmartaccount) and a [Viem Bundler Client](https://viem.sh/account-abstraction/clients/bundler). After setting up your Bundler Client, you can extend its functionality with `erc7710BundlerActions` actions to support ERC-7710. Once extended, use [`sendUserOperationWithDelegation`](../reference/api/experimental-actions/bundler-client.md#senduseroperationwithdelegation) to redeem the permission. diff --git a/delegation-toolkit/experimental/erc-7715-request-permissions.md b/delegation-toolkit/experimental/erc-7715-request-permissions.md index a740cee3d22..5002ca73d90 100644 --- a/delegation-toolkit/experimental/erc-7715-request-permissions.md +++ b/delegation-toolkit/experimental/erc-7715-request-permissions.md @@ -22,7 +22,7 @@ The MetaMask Delegation Toolkit provides the experimental actions for ERC-7715 t To request permissions, extend your [Viem Wallet Client](https://viem.sh/docs/clients/wallet) with `erc7715ProviderActions` actions. You'll need a session account to request the permission, which can be either a smart account or an externally owned account (EOA). -This example uses a smart account: +This example uses a MetaMask smart account: diff --git a/delegation-toolkit/get-started/eip7702-quickstart.md b/delegation-toolkit/get-started/eip7702-quickstart.md index e7a81691ebc..fbb80f26cd7 100644 --- a/delegation-toolkit/get-started/eip7702-quickstart.md +++ b/delegation-toolkit/get-started/eip7702-quickstart.md @@ -6,7 +6,7 @@ sidebar_label: EIP-7702 quickstart # EIP-7702 quickstart -This page demonstrates how to upgrade your externally owned account (EOA) to support MetaMask smart account +This page demonstrates how to upgrade your externally owned account (EOA) to support MetaMask Smart Accounts functionality using an [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) transaction. This enables your EOA to leverage the benefits of account abstraction, such as batch transactions, gas sponsorship, and [ERC-7710 delegation capabilities](./../concepts/delegation.md). diff --git a/delegation-toolkit/get-started/install.md b/delegation-toolkit/get-started/install.md index 41fde2e67a2..cdfbe899e99 100644 --- a/delegation-toolkit/get-started/install.md +++ b/delegation-toolkit/get-started/install.md @@ -9,7 +9,7 @@ import TabItem from "@theme/TabItem"; # Install and set up the Delegation Toolkit -This page provides instructions to install and set up the MetaMask Delegation Toolkit. +This page provides instructions to install and set up the MetaMask Delegation Toolkit, enabling you to integrate [MetaMask Smart Accounts](../concepts/smart-accounts.md) into your dapp. ## Prerequisites @@ -44,5 +44,5 @@ Add `@metamask/delegation-framework/=lib/metamask/delegation-framework/` in your ### 3. Get started -You're now ready to start using the MetaMask Delegation Toolkit. -Check out the [Delegation Toolkit quickstart](quickstart.md) to walk through a simple example. +You're now ready to start using MetaMask Smart Accounts. +Check out the [quickstart](quickstart.md) to walk through a simple example. diff --git a/delegation-toolkit/how-to/configure.md b/delegation-toolkit/how-to/configure.md index 9b2dc2910ff..0f834ef97d8 100644 --- a/delegation-toolkit/how-to/configure.md +++ b/delegation-toolkit/how-to/configure.md @@ -6,7 +6,7 @@ sidebar_label: Configure the toolkit # Configure the Delegation Toolkit -The MetaMask Delegation Toolkit enables you to easily integrate [smart accounts](../concepts/smart-accounts.md) into your dapp, +The MetaMask Delegation Toolkit enables you to easily integrate [MetaMask Smart Accounts](../concepts/smart-accounts.md) into your dapp, enabling a more flexible, secure, and frictionless experience for your users. The toolkit is highly configurable, allowing you to tailor it to your project's specific needs. It includes support for custom signers, multiple signatory schemes, custom paymasters and bundlers, and more. diff --git a/delegation-toolkit/how-to/create-delegation/index.md b/delegation-toolkit/how-to/create-delegation/index.md index 9d90e97caa7..1a0efc36d98 100644 --- a/delegation-toolkit/how-to/create-delegation/index.md +++ b/delegation-toolkit/how-to/create-delegation/index.md @@ -28,7 +28,7 @@ Learn how to [restrict a delegation](./restrict-delegation.md) using caveat enfo - [Install and set up the Delegation Toolkit.](../../get-started/install.md) - [Configure the Delegation Toolkit.](../configure.md) -- [Create a smart account.](../create-smart-account/index.md) +- [Create a MetaMask smart account.](../create-smart-account/index.md) ## Create a root delegation diff --git a/delegation-toolkit/how-to/create-smart-account/configure-accounts-signers.md b/delegation-toolkit/how-to/create-smart-account/configure-accounts-signers.md index 88fa20f88a4..ae60d23bd1f 100644 --- a/delegation-toolkit/how-to/create-smart-account/configure-accounts-signers.md +++ b/delegation-toolkit/how-to/create-smart-account/configure-accounts-signers.md @@ -1,15 +1,15 @@ --- sidebar_label: Configure accounts and signers -description: Learn how to configure different types of delegator accounts and signers using Viem. +description: Learn how to configure different types of MetaMask Smart Accounts and signers using Viem. sidebar_position: 1 --- import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; -# Configure smart accounts and signers +# Configure MetaMask Smart Accounts and signers -The MetaMask Delegation Toolkit supports different [smart account types](../../concepts/smart-accounts.md#smart-account-implementation-types), +The MetaMask Delegation Toolkit supports different [MetaMask smart account types](../../concepts/smart-accounts.md#smart-account-implementation-types), each with its own configuration and support for different signing mechanisms. You can create flexible and secure delegator accounts tailored to your specific needs. @@ -17,7 +17,7 @@ You can create flexible and secure delegator accounts tailored to your specific - [Install and set up the Delegation Toolkit.](../../get-started/install.md) - [Configure the Delegation Toolkit.](../configure.md) -- [Create a smart account.](index.md) +- [Create a MetaMask smart account.](index.md) ## Configure a Hybrid smart account @@ -222,7 +222,7 @@ import { } from "viem/account-abstraction"; export const credential = await createWebAuthnCredential({ - name: "MetaMask Smart Account", + name: "MetaMask smart account", }); export const webAuthnAccount = toWebAuthnAccount({ credential }); @@ -318,7 +318,7 @@ The number of signers in the signatories must be at least equal to the threshold ## Configure a Stateless 7702 smart account -The [Stateless 7702 smart account](../../concepts/smart-accounts.md#stateless-7702-smart-account) represents an EOA that has been upgraded to support smart account +The [Stateless 7702 smart account](../../concepts/smart-accounts.md#stateless-7702-smart-account) represents an EOA that has been upgraded to support MetaMask Smart Accounts functionality as defined by [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702). This implementation does not handle the upgrade process; see the [EIP-7702 quickstart](./../../get-started/eip7702-quickstart.md) to learn how to upgrade. To configure a Stateless 7702 smart account, provide the following parameters: diff --git a/delegation-toolkit/how-to/create-smart-account/index.md b/delegation-toolkit/how-to/create-smart-account/index.md index 1a6934956f3..1145bb0d96d 100644 --- a/delegation-toolkit/how-to/create-smart-account/index.md +++ b/delegation-toolkit/how-to/create-smart-account/index.md @@ -1,15 +1,15 @@ --- -description: Learn how to create a delegator account using Viem. +description: Learn how to create a MetaMask smart account using Viem. sidebar_position: 2 --- import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; -# Create a smart account +# Create a MetaMask smart account The MetaMask Delegation Toolkit is embedded, meaning that the end user can instantly interact with a dapp without wallet authorization, confirmations, or corporate logos. -Enable users to create a [smart account](../../concepts/smart-accounts.md) directly in your dapp. +Enable users to create a [MetaMask smart account](../../concepts/smart-accounts.md) directly in your dapp. ## Prerequisites @@ -18,7 +18,7 @@ Enable users to create a [smart account](../../concepts/smart-accounts.md) direc ## Create a `MetaMaskSmartAccount` -The following is an example of creating a smart account using Viem Core SDK. +The following is an example of creating a MetaMask smart account using Viem Core SDK. Viem Core SDK provides low-level interfaces to offer flexibility and control over the smart account creation lifecycle. diff --git a/delegation-toolkit/how-to/redeem-delegation.md b/delegation-toolkit/how-to/redeem-delegation.md index 5682c2adcba..5f2509c93f0 100644 --- a/delegation-toolkit/how-to/redeem-delegation.md +++ b/delegation-toolkit/how-to/redeem-delegation.md @@ -10,7 +10,7 @@ import TabItem from "@theme/TabItem"; # Redeem a delegation A delegate can redeem a delegation by submitting either a user operation or a regular transaction, -depending on whether the delegate is a smart account or externally owned account (EOA). +depending on whether the delegate is a MetaMask smart account or externally owned account (EOA). The redeem transaction is sent to the `DelegationManager` contract, which validates the delegation and executes actions on the delegator's behalf. To prepare the calldata for the redeem transaction, use the [`redeemDelegation`](../reference/api/delegation.md#redeemdelegation) utility function. @@ -25,12 +25,12 @@ The function supports batch redemption, allowing multiple delegations to be proc ## Redeem a delegation -Redeem a delegation with a [smart account](#redeem-with-a-smart-account) or an [externally owned account (EOA)](#redeem-with-an-eoa). +Redeem a delegation with a [MetaMask smart account](#redeem-with-a-metamask-smart-account) or an [externally owned account (EOA)](#redeem-with-an-eoa). -### Redeem with a smart account +### Redeem with a MetaMask smart account The following example demonstrates how to submit a user operation to redeem a delegation. -It assumes you have a delegation signed by the delegator, and that the delegate is a smart account. +It assumes you have a delegation signed by the delegator, and that the delegate is a MetaMask smart account. @@ -199,7 +199,7 @@ export const delegateWalletClient = createWalletClient({ You can redeem multiple delegations in a single user operation, each delegation independent of the others. Each element in the `delegationsArray` must have a corresponding element in the `executionsArray` and `modes`. -The following example assumes you already have multiple signed delegations and that the delegate is a smart account. +The following example assumes you already have multiple signed delegations and that the delegate is a MetaMask smart account. The preparation of the calldata is the same when [using an EOA as the delegate](#redeem-with-an-eoa); the primary difference is that an EOA submits a regular transaction instead of a user operation. diff --git a/delegation-toolkit/how-to/send-user-operation.md b/delegation-toolkit/how-to/send-user-operation.md index 343580b956e..ca958579579 100644 --- a/delegation-toolkit/how-to/send-user-operation.md +++ b/delegation-toolkit/how-to/send-user-operation.md @@ -20,14 +20,14 @@ Instead, they are sent to a bundler, which validates, optimizes, and aggregates See [Viem's Bundler Client](https://viem.sh/account-abstraction/clients/bundler) for details on how to interact with the bundler. :::note -If a user operation is sent from a smart contract account that has not been deployed, the toolkit configures the user operation to automatically deploy the account. +If a user operation is sent from a MetaMask smart account that has not been deployed, the toolkit configures the user operation to automatically deploy the account. ::: ## Prerequisites - [Install and set up the Delegation Toolkit.](../get-started/install.md) - [Configure the Delegation Toolkit.](configure.md) -- [Create a smart account.](create-smart-account/index.md) +- [Create a MetaMask smart account.](create-smart-account/index.md) ## Send a user operation diff --git a/delegation-toolkit/index.md b/delegation-toolkit/index.md index 257fd9bde56..a02e16ecf22 100644 --- a/delegation-toolkit/index.md +++ b/delegation-toolkit/index.md @@ -1,37 +1,30 @@ --- title: Delegation Toolkit introduction sidebar_label: Introduction -description: High-level overview of the Delegation Toolkit, its benefits, and where to start in the documentation. +description: High-level overview of MetaMask Smart Accounts and the Delegation Toolkit. sidebar_position: 1 --- import CardList from "@site/src/components/CardList" -# Embed smart accounts using the Delegation Toolkit +# Embed MetaMask Smart Accounts using the Delegation Toolkit -The MetaMask Delegation Toolkit is a [Viem](https://viem.sh/)-based collection of tools for integrating -embedded smart contract wallets, known as [MetaMask smart accounts](concepts/smart-accounts.md), -into dapps. Developers can create and manage MetaMask smart accounts that delegate specific -permissions, such as spending limits or time-based access, to other accounts. +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. -At the core of the toolkit is the [Delegation Framework](concepts/delegation.md#delegation-framework), a -set of open-source, audited smart contracts that manage the delegation lifecycle. - -Permissions are enforced through [caveats](concepts/caveat-enforcers.md), which are rule-based -constraints that define the conditions of a delegation. The toolkit includes -[built-in caveat enforcers](reference/caveats.md) for common -use cases. It also supports [custom caveat enforcers](how-to/create-delegation/create-custom-caveat-enforcer.md) -for advanced scenarios. +[Delegations](concepts/delegation.md) are a core feature of MetaMask Smart Accounts, enabling secure, rule-based permission sharing. +These delegations are powered by the toolkit's Delegation Framework, which defines how +permissions are created, shared, and enforced. ## Why use the toolkit? -The toolkit enables developers to create frictionless new experiences based on granular permission -sharing and trust. The toolkit offers a suite of contracts, libraries, and services designed for +The toolkit enables developers to create frictionless new experiences based on programmable account behavior and granular permission +sharing. The toolkit offers a suite of contracts, libraries, and services designed for maximum composability, allowing developers to build and extend their dapps with ease. The toolkit enables: -- **Instant user onboarding.** Provide frictionless onboarding with no browser extension, mobile +- **Instant user onboarding.** Instantly onboard users with embedded MetaMask Smart Accounts — no browser extension, mobile app, or seed phrase required. - **New web3 experiences.** Unlock new experiences such as peer-to-peer social @@ -54,8 +47,8 @@ Check out the following guides to get started with the MetaMask Delegation Toolk }, { href: "get-started/quickstart", - title: "Delegation quickstart", - description: "Create a delegator account and complete the delegation lifecycle.", + title: "Quickstart", + description: "Create a MetaMask smart account and send a user operation.", } ]} /> diff --git a/delegation-toolkit/reference/api/smart-account.md b/delegation-toolkit/reference/api/smart-account.md index 52471c35766..30940f55336 100644 --- a/delegation-toolkit/reference/api/smart-account.md +++ b/delegation-toolkit/reference/api/smart-account.md @@ -1,6 +1,6 @@ --- -description: Smart account-related API methods reference. -sidebar_label: Smart account +description: MetaMask Smart Accounts-related API methods reference. +sidebar_label: MetaMask Smart Accounts sidebar_position: 2 toc_max_heading_level: 2 --- @@ -8,9 +8,9 @@ toc_max_heading_level: 2 import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; -# Smart account API reference +# MetaMask Smart Accounts API reference -The following API methods are related to creating, managing, and signing with [smart accounts](../../concepts/smart-accounts.md). +The following API methods are related to creating, managing, and signing with [MetaMask Smart Accounts](../../concepts/smart-accounts.md). ## `aggregateSignature` diff --git a/docs/whats-new.md b/docs/whats-new.md index f7a719899ed..6db29175dd4 100644 --- a/docs/whats-new.md +++ b/docs/whats-new.md @@ -9,6 +9,11 @@ The latest major MetaMask documentation updates are listed by the month they wer For a comprehensive list of recent product changes, visit the "Release Notes" section at the bottom of the [MetaMask developer page](https://metamask.io/developer/). +## July 2025 + +- Added a [MetaMask Smart Accounts quickstart](/delegation-toolkit/development/quickstart). + ([#2132](https://github.com/MetaMask/metamask-docs/pull/2132)) + ## June 2025 - Updated the [docs homepage](/), added descriptive dropdowns the top navigation bar, and diff --git a/gator_versioned_docs/version-0.12.0/changelog/0.12.0.md b/gator_versioned_docs/version-0.12.0/changelog/0.12.0.md index c1bb62a7ebb..2ad67845af3 100644 --- a/gator_versioned_docs/version-0.12.0/changelog/0.12.0.md +++ b/gator_versioned_docs/version-0.12.0/changelog/0.12.0.md @@ -1,10 +1,10 @@ --- sidebar_label: 0.12.0 sidebar_position: 1 -description: MetaMask Delegation Toolkit v0.11.0 changelog +description: MetaMask Delegation Toolkit v0.12.0 changelog --- -# What's new in v0.11.0? +# What's new in v0.12.0? :::warning Breaking changes diff --git a/src/components/NavDropdown/EmbedMetaMask.html b/src/components/NavDropdown/EmbedMetaMask.html index 9fa69d0253b..a3115126a66 100644 --- a/src/components/NavDropdown/EmbedMetaMask.html +++ b/src/components/NavDropdown/EmbedMetaMask.html @@ -10,7 +10,7 @@

Delegation Toolkit

-

Embed MetaMask smart accounts into your dapp, enabling new user experiences.

+

Embed MetaMask Smart Accounts into your dapp, enabling new user experiences.

diff --git a/src/components/ProductBanner/index.tsx b/src/components/ProductBanner/index.tsx index 999f7c9bdd2..cb0026714cd 100644 --- a/src/components/ProductBanner/index.tsx +++ b/src/components/ProductBanner/index.tsx @@ -20,7 +20,7 @@ const PRODUCT_CONFIGS: Record = { }, '/delegation-toolkit/': { name: 'Delegation Toolkit documentation', - description: 'Embed MetaMask smart accounts into your dapp, enabling new user experiences.', + description: 'Embed MetaMask Smart Accounts into your dapp, enabling new user experiences.', }, '/snaps/': { name: 'Snaps documentation', diff --git a/src/pages/index.tsx b/src/pages/index.tsx index c097b46a7a8..0570b0e8229 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -19,7 +19,7 @@ export default function Home(): JSX.Element { icon: 'arrow-right', }} /> - +