From e5ce184abf320f688546310266f0042aedf9865e Mon Sep 17 00:00:00 2001 From: Alexandra Carrillo Date: Mon, 10 Nov 2025 09:47:53 -0800 Subject: [PATCH 1/3] Smart Accounts Kit update URLs and final rebranding --- .linkspector.yml | 4 +- docusaurus.config.js | 10 +-- embedded-wallets/features/smart-accounts.mdx | 2 +- gator_versioned_docs/version-0.12.0/index.md | 6 +- .../assets/erc7715-request.png | Bin .../concepts/advanced-permissions.md | 0 .../concepts/delegation/caveat-enforcers.md | 0 .../concepts/delegation/index.md | 0 .../concepts/smart-accounts.md | 0 .../experimental/_category_.json | 0 .../erc-7710-redeem-delegations.md | 0 .../erc-7715-request-permissions.md | 0 .../store-retrieve-delegations.md | 0 .../get-started/install.md | 0 .../smart-account-quickstart/eip7702.md | 0 .../smart-account-quickstart/index.md | 0 .../get-started/supported-networks.md | 0 .../get-started/use-the-cli.md | 0 .../execute-on-metamask-users-behalf.md | 0 .../use-permissions/erc20-token.md | 0 .../use-permissions/native-token.md | 0 .../guides/configure-toolkit.md | 0 .../delegation/check-delegation-state.md | 0 .../guides/delegation/disable-delegation.md | 0 .../execute-on-smart-accounts-behalf.md | 0 .../use-delegation-scopes/constrain-scope.md | 0 .../use-delegation-scopes/function-call.md | 0 .../delegation/use-delegation-scopes/index.md | 0 .../ownership-transfer.md | 0 .../use-delegation-scopes/spending-limit.md | 0 .../smart-accounts/create-smart-account.md | 0 .../smart-accounts/deploy-smart-account.md | 0 .../generate-multisig-signature.md | 0 .../send-gasless-transaction.md | 0 .../smart-accounts/send-user-operation.md | 0 .../index.mdx | 0 .../advanced-permissions/bundler-client.md | 0 .../advanced-permissions/permissions.md | 0 .../advanced-permissions/wallet-client.md | 0 .../delegation/caveat-enforcer-client.md | 0 .../reference/delegation/caveats.md | 0 .../reference/delegation/delegation-scopes.md | 0 .../reference/delegation/index.md | 0 .../reference/smart-account.md | 0 src/components/NavDropdown/Products.html | 6 +- .../SidebarSectionDropdown/configs.ts | 6 +- .../SidebarVersionDropdown.tsx | 2 +- src/components/SubNavBar/README.md | 2 +- src/config/mobileProductsMenu.ts | 4 +- src/pages/index.tsx | 2 +- .../NavigationOverlay/NavigationFlow.tsx | 24 +++--- .../create-custom-caveat-enforcer.md | 14 +-- src/pages/tutorials/create-invite-link.md | 20 ++--- .../tutorials/upgrade-eoa-to-smart-account.md | 4 +- src/pages/tutorials/use-erc20-paymaster.md | 14 +-- .../tutorials/use-passkey-as-backup-signer.md | 12 +-- src/theme/DocSidebar/Desktop/index.tsx | 8 +- src/theme/DocSidebar/Mobile/index.tsx | 8 +- src/theme/DocVersionBanner/index.jsx | 2 +- src/utils/tutorials-map.tsx | 6 +- vercel.json | 80 +----------------- .../send-batch-transactions.md | 6 +- 62 files changed, 85 insertions(+), 157 deletions(-) rename {delegation-toolkit => smart-accounts-kit}/assets/erc7715-request.png (100%) rename {delegation-toolkit => smart-accounts-kit}/concepts/advanced-permissions.md (100%) rename {delegation-toolkit => smart-accounts-kit}/concepts/delegation/caveat-enforcers.md (100%) rename {delegation-toolkit => smart-accounts-kit}/concepts/delegation/index.md (100%) rename {delegation-toolkit => smart-accounts-kit}/concepts/smart-accounts.md (100%) rename {delegation-toolkit => smart-accounts-kit}/experimental/_category_.json (100%) rename {delegation-toolkit => smart-accounts-kit}/experimental/erc-7710-redeem-delegations.md (100%) rename {delegation-toolkit => smart-accounts-kit}/experimental/erc-7715-request-permissions.md (100%) rename {delegation-toolkit => smart-accounts-kit}/experimental/store-retrieve-delegations.md (100%) rename {delegation-toolkit => smart-accounts-kit}/get-started/install.md (100%) rename {delegation-toolkit => smart-accounts-kit}/get-started/smart-account-quickstart/eip7702.md (100%) rename {delegation-toolkit => smart-accounts-kit}/get-started/smart-account-quickstart/index.md (100%) rename {delegation-toolkit => smart-accounts-kit}/get-started/supported-networks.md (100%) rename {delegation-toolkit => smart-accounts-kit}/get-started/use-the-cli.md (100%) rename {delegation-toolkit => smart-accounts-kit}/guides/advanced-permissions/execute-on-metamask-users-behalf.md (100%) rename {delegation-toolkit => smart-accounts-kit}/guides/advanced-permissions/use-permissions/erc20-token.md (100%) rename {delegation-toolkit => smart-accounts-kit}/guides/advanced-permissions/use-permissions/native-token.md (100%) rename {delegation-toolkit => smart-accounts-kit}/guides/configure-toolkit.md (100%) rename {delegation-toolkit => smart-accounts-kit}/guides/delegation/check-delegation-state.md (100%) rename {delegation-toolkit => smart-accounts-kit}/guides/delegation/disable-delegation.md (100%) rename {delegation-toolkit => smart-accounts-kit}/guides/delegation/execute-on-smart-accounts-behalf.md (100%) rename {delegation-toolkit => smart-accounts-kit}/guides/delegation/use-delegation-scopes/constrain-scope.md (100%) rename {delegation-toolkit => smart-accounts-kit}/guides/delegation/use-delegation-scopes/function-call.md (100%) rename {delegation-toolkit => smart-accounts-kit}/guides/delegation/use-delegation-scopes/index.md (100%) rename {delegation-toolkit => smart-accounts-kit}/guides/delegation/use-delegation-scopes/ownership-transfer.md (100%) rename {delegation-toolkit => smart-accounts-kit}/guides/delegation/use-delegation-scopes/spending-limit.md (100%) rename {delegation-toolkit => smart-accounts-kit}/guides/smart-accounts/create-smart-account.md (100%) rename {delegation-toolkit => smart-accounts-kit}/guides/smart-accounts/deploy-smart-account.md (100%) rename {delegation-toolkit => smart-accounts-kit}/guides/smart-accounts/generate-multisig-signature.md (100%) rename {delegation-toolkit => smart-accounts-kit}/guides/smart-accounts/send-gasless-transaction.md (100%) rename {delegation-toolkit => smart-accounts-kit}/guides/smart-accounts/send-user-operation.md (100%) rename {delegation-toolkit => smart-accounts-kit}/index.mdx (100%) rename {delegation-toolkit => smart-accounts-kit}/reference/advanced-permissions/bundler-client.md (100%) rename {delegation-toolkit => smart-accounts-kit}/reference/advanced-permissions/permissions.md (100%) rename {delegation-toolkit => smart-accounts-kit}/reference/advanced-permissions/wallet-client.md (100%) rename {delegation-toolkit => smart-accounts-kit}/reference/delegation/caveat-enforcer-client.md (100%) rename {delegation-toolkit => smart-accounts-kit}/reference/delegation/caveats.md (100%) rename {delegation-toolkit => smart-accounts-kit}/reference/delegation/delegation-scopes.md (100%) rename {delegation-toolkit => smart-accounts-kit}/reference/delegation/index.md (100%) rename {delegation-toolkit => smart-accounts-kit}/reference/smart-account.md (100%) diff --git a/.linkspector.yml b/.linkspector.yml index 84114c70333..24b55b1bf36 100644 --- a/.linkspector.yml +++ b/.linkspector.yml @@ -1,5 +1,5 @@ dirs: - - ./delegation-toolkit + - ./smart-accounts-kit - ./developer-tools - ./embedded-wallets - ./sdk @@ -24,7 +24,7 @@ ignorePatterns: - pattern: '^http(s)?://metamask.io' - pattern: '^http(s)?://rivet.cloud' - pattern: '^/img/' -- pattern: '^/delegation-toolkit/' +- pattern: '^/smart-accounts-kit/' - pattern: '^/developer-tools/' - pattern: '^/embedded-wallets/' - pattern: '^/sdk/' diff --git a/docusaurus.config.js b/docusaurus.config.js index 5762d5f9ab3..eb2803e77e6 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -203,8 +203,8 @@ const config = { '@docusaurus/plugin-content-docs', { id: 'gator', - path: 'delegation-toolkit', - routeBasePath: 'delegation-toolkit', + path: 'smart-accounts-kit', + routeBasePath: 'smart-accounts-kit', editUrl: 'https://github.com/MetaMask/metamask-docs/edit/main/', sidebarPath: require.resolve('./gator-sidebar.js'), breadcrumbs: false, @@ -453,8 +453,8 @@ const config = { to: '/wallet', }, { - label: 'Delegation Toolkit', - to: '/delegation-toolkit', + label: 'Smart Accounts Kit', + to: '/smart-accounts-kit', }, { label: 'Embedded Wallets', @@ -490,7 +490,7 @@ const config = { href: 'https://github.com/MetaMask/metamask-sdk/', }, { - label: 'Delegation Toolkit GitHub', + label: 'Smart Accounts Kit GitHub', href: 'https://github.com/MetaMask/smart-accounts-kit', }, { diff --git a/embedded-wallets/features/smart-accounts.mdx b/embedded-wallets/features/smart-accounts.mdx index 2bb7cbb0ac2..0010c41a753 100644 --- a/embedded-wallets/features/smart-accounts.mdx +++ b/embedded-wallets/features/smart-accounts.mdx @@ -18,7 +18,7 @@ Create and manage smart accounts for your users with just a single toggle on the ## Getting Started -Our native smart accounts powered by [MetaMask Smart Accounts kit](/delegation-toolkit) simplify setup, enabling you to create and manage smart accounts effortlessly with popular libraries like Viem, Ethers, and Wagmi —no need for third-party packages to achieve ERC-4337 compatibility. +Our native smart accounts powered by [MetaMask Smart Accounts kit](/smart-accounts-kit) simplify setup, enabling you to create and manage smart accounts effortlessly with popular libraries like Viem, Ethers, and Wagmi —no need for third-party packages to achieve ERC-4337 compatibility. We are working closely with different partners in the account abstraction ecosystem and will provide support for evolving standards like EIP-7702, ERC-7579 (Modular Accounts), and ERC-7555 (account discovery) as they get finalized. diff --git a/gator_versioned_docs/version-0.12.0/index.md b/gator_versioned_docs/version-0.12.0/index.md index f08aaa43608..2e2a45da42d 100644 --- a/gator_versioned_docs/version-0.12.0/index.md +++ b/gator_versioned_docs/version-0.12.0/index.md @@ -48,17 +48,17 @@ Check out the following sections to get started with the MetaMask Delegation Too Create embedded wallets
  • - Unreal SDK
    • - + Unreal SDK
      -

      Delegation Toolkit

      +

      Smart Accounts Kit

      Create smart accounts that support delegated permissions, gas abstraction, and secure execution.

      diff --git a/src/components/SidebarSectionDropdown/configs.ts b/src/components/SidebarSectionDropdown/configs.ts index 36fe3c7f137..64f9f23d919 100644 --- a/src/components/SidebarSectionDropdown/configs.ts +++ b/src/components/SidebarSectionDropdown/configs.ts @@ -51,9 +51,9 @@ export const SNAPS_CONFIG: SidebarStaticTitleProps = { pathPattern: '/snaps', } -export const DELEGATION_TOOLKIT_CONFIG: SidebarStaticTitleProps = { - title: 'Delegation Toolkit', - pathPattern: '/delegation-toolkit', +export const SMART_ACCOUNTS_KIT_CONFIG: SidebarStaticTitleProps = { + title: 'Smart Accounts Kit', + pathPattern: '/smart-accounts-kit', } export function isPathInSections( diff --git a/src/components/SidebarVersionDropdown/SidebarVersionDropdown.tsx b/src/components/SidebarVersionDropdown/SidebarVersionDropdown.tsx index cdcd14f667c..c11921d9b15 100644 --- a/src/components/SidebarVersionDropdown/SidebarVersionDropdown.tsx +++ b/src/components/SidebarVersionDropdown/SidebarVersionDropdown.tsx @@ -4,7 +4,7 @@ import versions from '@site/gator_versions.json' import clsx from 'clsx' import styles from './SidebarVersionDropdown.module.css' -export default function SidebarVersionDropdown({ path = 'delegation-toolkit' }: { path?: string }) { +export default function SidebarVersionDropdown({ path = 'smart-accounts-kit' }: { path?: string }) { const history = useHistory() const location = useLocation() const dropdownRef = useRef(null) diff --git a/src/components/SubNavBar/README.md b/src/components/SubNavBar/README.md index f234bc2e39e..b1e0292a517 100644 --- a/src/components/SubNavBar/README.md +++ b/src/components/SubNavBar/README.md @@ -95,7 +95,7 @@ That's it! The SubNavBar will automatically appear on pages matching your path p - **Wallet API** (`/wallet`) - Shows Wallet API sections - **Snaps** (`/snaps`) - Shows Snaps development sections - **Services** (`/services`) - Shows Infura services sections -- **Smart Accounts Kit** (`/delegation-toolkit`) - Shows MetaMask Smart Accounts Kit sections +- **Smart Accounts Kit** (`/smart-accounts-kit`) - Shows MetaMask Smart Accounts Kit sections ## Styling diff --git a/src/config/mobileProductsMenu.ts b/src/config/mobileProductsMenu.ts index d256944af74..d5c15776522 100644 --- a/src/config/mobileProductsMenu.ts +++ b/src/config/mobileProductsMenu.ts @@ -24,8 +24,8 @@ export const mobileProductsMenu: MobileProductItem[] = [ href: '/embedded-wallets', }, { - label: 'Delegation Toolkit', - href: '/delegation-toolkit', + label: 'Smart Accounts Kit', + href: '/smart-accounts-kit', }, { label: 'Snaps', diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 5f21560de05..ad31d365861 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -57,7 +57,7 @@ export default function Home(): JSX.Element { title: 'Create smart accounts', description: 'Integrate MetaMask Smart Accounts into your dapp. Create smart wallets that support delegated permissions, gas abstraction, and secure execution.', - href: '/delegation-toolkit', + href: '/smart-accounts-kit', buttonIcon: 'arrow-right', }, { diff --git a/src/pages/quickstart/NavigationOverlay/NavigationFlow.tsx b/src/pages/quickstart/NavigationOverlay/NavigationFlow.tsx index 40b580cf2f7..6b7f24bd730 100644 --- a/src/pages/quickstart/NavigationOverlay/NavigationFlow.tsx +++ b/src/pages/quickstart/NavigationOverlay/NavigationFlow.tsx @@ -47,32 +47,32 @@ const navigationOptions: NavigationOption[] = [ { id: 'smart-accounts-kit-1', title: 'I want to create a smart account', - description: 'Delegation Toolkit', - link: '/delegation-toolkit/get-started/smart-account-quickstart/', + description: 'Smart Accounts Kit', + link: '/smart-accounts-kit/get-started/smart-account-quickstart/', }, { id: 'smart-accounts-kit-4', title: 'I want to perform executions on behalf of smart accounts', - description: 'Delegation Toolkit', - link: '/delegation-toolkit/guides/delegation/execute-on-smart-accounts-behalf', + description: 'Smart Accounts Kit', + link: '/smart-accounts-kit/guides/delegation/execute-on-smart-accounts-behalf', }, { id: 'smart-accounts-kit-2', title: 'I want to perform executions on behalf of MetaMask users', - description: 'Delegation Toolkit', - link: '/delegation-toolkit/guides/erc7715/execute-on-metamask-users-behalf', + description: 'Smart Accounts Kit', + link: '/smart-accounts-kit/guides/erc7715/execute-on-metamask-users-behalf', }, { id: 'smart-accounts-kit-3', title: 'I want to send gasless transactions', - description: 'Delegation Toolkit', - link: '/delegation-toolkit/guides/smart-accounts/send-gasless-transaction', + description: 'Smart Accounts Kit', + link: '/smart-accounts-kit/guides/smart-accounts/send-gasless-transaction', }, { id: 'smart-accounts-kit-5', title: 'I want to convert EOAs to smart accounts', - description: 'Delegation Toolkit', - link: '/delegation-toolkit/get-started/smart-account-quickstart/eip7702', + description: 'Smart Accounts Kit', + link: '/smart-accounts-kit/get-started/smart-account-quickstart/eip7702', }, ] @@ -153,8 +153,8 @@ const NavigationFlow: React.FC = ({ onSelect }) => { 💳 Embedded Wallets Docs - - ⚡ Delegation Toolkit Docs + + ⚡ Smart Accounts Kit Docs */} diff --git a/src/pages/tutorials/create-custom-caveat-enforcer.md b/src/pages/tutorials/create-custom-caveat-enforcer.md index c39faca002c..c3aa50b06a7 100644 --- a/src/pages/tutorials/create-custom-caveat-enforcer.md +++ b/src/pages/tutorials/create-custom-caveat-enforcer.md @@ -11,9 +11,9 @@ author: MetaMask Developer Relations import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; -This tutorial walks you through creating a custom [caveat enforcer](/delegation-toolkit/concepts/delegation/caveat-enforcers) and applying it to a [delegation](/delegation-toolkit/concepts/delegation/). +This tutorial walks you through creating a custom [caveat enforcer](/smart-accounts-kit/concepts/delegation/caveat-enforcers) and applying it to a [delegation](/smart-accounts-kit/concepts/delegation/). -The Delegation Toolkit includes [out-of-the-box caveat enforcers](/delegation-toolkit/reference/delegation/caveats) that define rules and restrictions for common use cases. +The Smart Accounts Kit includes [out-of-the-box caveat enforcers](/smart-accounts-kit/reference/delegation/caveats) that define rules and restrictions for common use cases. For more specific control or other use cases, you can create custom caveat enforcers. In this tutorial, you'll create and apply a caveat enforcer that only allows a delegation to be redeemed after a specific timestamp. @@ -31,9 +31,9 @@ In this tutorial, you'll create and apply a caveat enforcer that only allows a d ## Steps -### 1. Install the Delegation Toolkit +### 1. Install the Smart Accounts Kit -Install the [Delegation Toolkit](https://www.npmjs.com/package/@metamask/smart-accounts-kit) in your project: +Install the [Smart Accounts Kit](https://www.npmjs.com/package/@metamask/smart-accounts-kit) in your project: ```bash npm2yarn npm install @metamask/smart-accounts-kit @@ -57,7 +57,7 @@ the current block timestamp is later than the defined allowed timestamp. pragma solidity 0.8.23; import { CaveatEnforcer } from "@delegator/src/enforcers/CaveatEnforcer.sol"; -import { ModeCode } from "/delegation-toolkit/utils/Types.sol"; +import { ModeCode } from "/smart-accounts-kit/utils/Types.sol"; contract AfterTimestampEnforcer is CaveatEnforcer { /** @@ -108,7 +108,7 @@ The Forge CLI will display the address of the deployed caveat enforcer. ### 4. Apply the caveat enforcer -Specify the address of the deployed `AfterTimestampEnforcer.sol` contract, add it to the [caveat builder](/delegation-toolkit/reference/delegation/#createcaveatbuilder), and create a delegation. +Specify the address of the deployed `AfterTimestampEnforcer.sol` contract, add it to the [caveat builder](/smart-accounts-kit/reference/delegation/#createcaveatbuilder), and create a delegation. The following code snippet uses the custom caveat enforcer to create a delegation granting a 0.01 ETH allowance that becomes spendable one hour after it is created: @@ -181,4 +181,4 @@ export const delegatorSmartAccount = await toMetaMaskSmartAccount({ You've successfully created, deployed, and applied a custom caveat enforcer! For production use cases, you might need to add additional caveats to restrict the delegation further. -Learn more about [caveat enforcers](/delegation-toolkit/concepts/delegation/caveat-enforcers). +Learn more about [caveat enforcers](/smart-accounts-kit/concepts/delegation/caveat-enforcers). diff --git a/src/pages/tutorials/create-invite-link.md b/src/pages/tutorials/create-invite-link.md index 09722776ae8..eeed06ad5cc 100644 --- a/src/pages/tutorials/create-invite-link.md +++ b/src/pages/tutorials/create-invite-link.md @@ -18,8 +18,8 @@ Bob can start using your dapp right away, without installing a wallet or paying You'll enable this by: - Adding an [embedded wallet](/embedded-wallets) for instant onboarding. -- Creating a [MetaMask smart account](/delegation-toolkit/concepts/smart-accounts) to create and redeem an invitation. -- Creating an [open delegation](/delegation-toolkit/concepts/delegation) to represent an invitation. +- Creating a [MetaMask smart account](/smart-accounts-kit/concepts/smart-accounts) to create and redeem an invitation. +- Creating an [open delegation](/smart-accounts-kit/concepts/delegation) to represent an invitation. ## Prerequisites @@ -38,7 +38,7 @@ You'll enable this by: #### 1.1. Install dependencies -Install the [Delegation Toolkit](https://www.npmjs.com/package/@metamask/smart-accounts-kit) and other dependencies in your project: +Install the [Smart Accounts Kit](https://www.npmjs.com/package/@metamask/smart-accounts-kit) and other dependencies in your project: ```bash npm2yarn npm install @metamask/smart-accounts-kit @web3auth/modal wagmi @tanstack/react-query @@ -132,8 +132,8 @@ const bundlerClient = createBundlerClient({ ### 3. Create a smart account Create an account to create and redeem an invitation. -This account will create a delegation, and must be a [MetaMask smart account](/delegation-toolkit/concepts/smart-accounts). -This example uses a [Hybrid smart account](/delegation-toolkit/guides/smart-accounts/create-smart-account/#create-a-hybrid-smart-account), which is a flexible smart account implementation that supports both an externally owned account (EOA) owner and any number of passkey (WebAuthn) signers: +This account will create a delegation, and must be a [MetaMask smart account](/smart-accounts-kit/concepts/smart-accounts). +This example uses a [Hybrid smart account](/smart-accounts-kit/guides/smart-accounts/create-smart-account/#create-a-hybrid-smart-account), which is a flexible smart account implementation that supports both an externally owned account (EOA) owner and any number of passkey (WebAuthn) signers: ```tsx import { Implementation, toMetaMaskSmartAccount } from '@metamask/smart-accounts-kit'; @@ -183,7 +183,7 @@ You can use the [MetaMask faucet](/developer-tools/faucet) to get Sepolia ETH. #### 4.3. Create an open root delegation -Create an [open root delegation](/delegation-toolkit/concepts/delegation) to represent an invitation. +Create an [open root delegation](/smart-accounts-kit/concepts/delegation) to represent an invitation. A root delegation is the first delegation in a chain of delegations, and an open root delegation grants permission to any account. In this example, the inviter creates an invitation that can be redeemed by any invitee, allowing the invitee to spend up to 0.001 ETH. @@ -259,7 +259,7 @@ const decodedDelegation = decodeDelegation(encodedDelegation); #### 5.2. Redeem the delegation -[Redeem the delegation](/delegation-toolkit/guides/delegation/execute-on-smart-accounts-behalf/#7-redeem-the-delegation) by submitting a user operation from the smart account to the `DelegationManager` contract. +[Redeem the delegation](/smart-accounts-kit/guides/delegation/execute-on-smart-accounts-behalf/#7-redeem-the-delegation) by submitting a user operation from the smart account to the `DelegationManager` contract. Submitting the user operation deploys the account for first-time users. The delegation manager validates the delegation and executes delegated actions. @@ -299,6 +299,6 @@ const userOperationHash = await bundlerClient.sendUserOperation({ ## Next steps - See [`invitation-link-example`](https://github.com/MetaMask/gator-examples/tree/feat/invitation-link-example/examples/invitation-link-example) on GitHub for a complete example dapp. -- When creating an invitation, you can add more rules and restrictions using [delegation scopes](/delegation-toolkit/guides/delegation/use-delegation-scopes) and [caveat enforcers](/delegation-toolkit/guides/delegation/use-delegation-scopes/constrain-scope). -- Learn more about [smart account implementations](/delegation-toolkit/guides/smart-accounts/create-smart-account). -- Learn more about [delegation types](/delegation-toolkit/concepts/delegation/#delegation-types). +- When creating an invitation, you can add more rules and restrictions using [delegation scopes](/smart-accounts-kit/guides/delegation/use-delegation-scopes) and [caveat enforcers](/smart-accounts-kit/guides/delegation/use-delegation-scopes/constrain-scope). +- Learn more about [smart account implementations](/smart-accounts-kit/guides/smart-accounts/create-smart-account). +- Learn more about [delegation types](/smart-accounts-kit/concepts/delegation/#delegation-types). diff --git a/src/pages/tutorials/upgrade-eoa-to-smart-account.md b/src/pages/tutorials/upgrade-eoa-to-smart-account.md index fd6069ec5f2..f42fba26a3a 100644 --- a/src/pages/tutorials/upgrade-eoa-to-smart-account.md +++ b/src/pages/tutorials/upgrade-eoa-to-smart-account.md @@ -7,7 +7,7 @@ date: Aug 22, 2025 author: MetaMask Developer Relations --- -This tutorial walks you through upgrading a MetaMask externally owned account (EOA) to a [MetaMask smart account](/delegation-toolkit/concepts/smart-accounts) via [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702), and sending an [atomic batch transaction](/wallet/how-to/send-transactions/send-batch-transactions/#about-atomic-batch-transactions) via [EIP-5792](https://eips.ethereum.org/EIPS/eip-5792). +This tutorial walks you through upgrading a MetaMask externally owned account (EOA) to a [MetaMask smart account](/smart-accounts-kit/concepts/smart-accounts) via [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702), and sending an [atomic batch transaction](/wallet/how-to/send-transactions/send-batch-transactions/#about-atomic-batch-transactions) via [EIP-5792](https://eips.ethereum.org/EIPS/eip-5792). You will use a provided template, which sets up MetaMask SDK with a [Next.js](https://nextjs.org/docs) and [Wagmi](https://wagmi.sh/) dapp. ## Prerequisites @@ -494,4 +494,4 @@ You have successfully used the SDK to upgrade a MetaMask EOA to a MetaMask smart - View the `feat-mm-sdk-final` branch of the [`MetaMask/7702-livestream-demo`](https://github.com/MetaMask/7702-livestream-demo/tree/feat-mm-sdk-final) repository for the completed implementation of this tutorial. - Watch the [live coding session](https://www.youtube.com/watch?v=crMqCb8RPEE) on YouTube, in which the MetaMask DevRel team walks through setting up EIP-7702 functionality from the initial template. -- See the [Smart Accounts Kit EIP-7702 quickstart](/delegation-toolkit/get-started/smart-account-quickstart/eip7702) to learn how to use the Smart Accounts Kit to upgrade an EOA to a MetaMask smart account. +- See the [Smart Accounts Kit EIP-7702 quickstart](/smart-accounts-kit/get-started/smart-account-quickstart/eip7702) to learn how to use the Smart Accounts Kit to upgrade an EOA to a MetaMask smart account. diff --git a/src/pages/tutorials/use-erc20-paymaster.md b/src/pages/tutorials/use-erc20-paymaster.md index b54b427b5e2..7f94cceb442 100644 --- a/src/pages/tutorials/use-erc20-paymaster.md +++ b/src/pages/tutorials/use-erc20-paymaster.md @@ -8,12 +8,12 @@ date: Sep 2, 2025 author: MetaMask Developer Relations --- -This tutorial walks you through using an ERC-20 paymaster with [MetaMask Smart Accounts](/delegation-toolkit/concepts/smart-accounts), enabling users to pay gas fees in USDC. +This tutorial walks you through using an ERC-20 paymaster with [MetaMask Smart Accounts](/smart-accounts-kit/concepts/smart-accounts), enabling users to pay gas fees in USDC. This tutorial uses Pimlico's paymaster, but you can use any paymaster of your choice. ## About paymasters -A paymaster is an important component of the [account abstraction (ERC-4337)](/delegation-toolkit/concepts/smart-accounts) standard, responsible for abstracting gas fees for end users. +A paymaster is an important component of the [account abstraction (ERC-4337)](/smart-accounts-kit/concepts/smart-accounts) standard, responsible for abstracting gas fees for end users. There are different types of paymasters, such as gasless paymasters and ERC-20 paymasters. While a gasless paymaster covers the transaction on behalf of the user, an ERC-20 paymaster allows users to pay gas fees using a supported ERC-20 token. This removes the need for users to hold native tokens, allowing them to perform onchain actions using only stablecoins. @@ -27,9 +27,9 @@ This removes the need for users to hold native tokens, allowing them to perform ## Steps -### 1. Install the Delegation Toolkit +### 1. Install the Smart Accounts Kit -Install the [Delegation Toolkit](https://www.npmjs.com/package/@metamask/smart-accounts-kit) in your project: +Install the [Smart Accounts Kit](https://www.npmjs.com/package/@metamask/smart-accounts-kit) in your project: ```bash npm2yarn npm install @metamask/smart-accounts-kit @@ -89,7 +89,7 @@ const bundlerClient = createBundlerClient({ ### 5. Create and fund a smart account -Create a [Hybrid smart account](/delegation-toolkit/guides/smart-accounts/create-smart-account/#create-a-hybrid-smart-account). +Create a [Hybrid smart account](/smart-accounts-kit/guides/smart-accounts/create-smart-account/#create-a-hybrid-smart-account). A Hybrid smart account is a flexible smart account implementation that supports both an externally owned account (EOA) owner and any number of passkey (WebAuthn) signers. ```typescript @@ -164,5 +164,5 @@ const userOperationHash = await bundlerClient.sendUserOperation({ ## Next steps -- Learn more about [smart account implementations](/delegation-toolkit/guides/smart-accounts/create-smart-account). -- To sponsor gas for end users, see how to [send a gasless transaction](/delegation-toolkit/guides/smart-accounts/send-gasless-transaction). +- Learn more about [smart account implementations](/smart-accounts-kit/guides/smart-accounts/create-smart-account). +- To sponsor gas for end users, see how to [send a gasless transaction](/smart-accounts-kit/guides/smart-accounts/send-gasless-transaction). diff --git a/src/pages/tutorials/use-passkey-as-backup-signer.md b/src/pages/tutorials/use-passkey-as-backup-signer.md index dead6792376..5cde603c369 100644 --- a/src/pages/tutorials/use-passkey-as-backup-signer.md +++ b/src/pages/tutorials/use-passkey-as-backup-signer.md @@ -8,7 +8,7 @@ date: Aug 27, 2025 author: MetaMask Developer Relations --- -This tutorial walks you through using a passkey as a backup signer for your [MetaMask smart account](/delegation-toolkit/concepts/smart-accounts). +This tutorial walks you through using a passkey as a backup signer for your [MetaMask smart account](/smart-accounts-kit/concepts/smart-accounts). ## About passkeys @@ -16,7 +16,7 @@ An externally owned account (EOA) uses the secp256k1 elliptic curve to generate In contrast, a passkey (WebAuthn credential) uses the secp256r1 (P-256) elliptic curve to generate key pairs and signatures. Passkeys eliminate the need for traditional seed phrases that are difficult to remember, enabling a more seamless and secure way for users to access their web3 wallets. -MetaMask Smart Accounts offer a [Hybrid implementation](/delegation-toolkit/concepts/smart-accounts/#hybrid-smart-account), which supports signature validation for both secp256k1 and secp256r1 curves. +MetaMask Smart Accounts offer a [Hybrid implementation](/smart-accounts-kit/concepts/smart-accounts/#hybrid-smart-account), which supports signature validation for both secp256k1 and secp256r1 curves. This allows you to add a passkey as a backup signer for your smart account. You can add passkeys during smart account creation or after the account has been deployed. @@ -32,7 +32,7 @@ This tutorial walks you through adding a passkey signer to an already deployed s ### 1. Install dependencies -Install the [Delegation Toolkit](https://www.npmjs.com/package/@metamask/smart-accounts-kit) and [Ox SDK](https://oxlib.sh/#installation) in your project: +Install the [Smart Accounts Kit](https://www.npmjs.com/package/@metamask/smart-accounts-kit) and [Ox SDK](https://oxlib.sh/#installation) in your project: ```bash npm2yarn npm install @metamask/smart-accounts-kit ox @@ -69,7 +69,7 @@ const bundlerClient = createBundlerClient({ ### 4. Create and deploy a smart account -Create and deploy a [Hybrid smart account](/delegation-toolkit/guides/smart-accounts/create-smart-account), with a private key signer. +Create and deploy a [Hybrid smart account](/smart-accounts-kit/guides/smart-accounts/create-smart-account), with a private key signer. The Hybrid implementation supports adding additional passkey signers. ```typescript @@ -186,5 +186,5 @@ const smartAccount = await toMetaMaskSmartAccount({ ## Next steps -- Learn more about [smart account implementations](/delegation-toolkit/guides/smart-accounts/create-smart-account). -- To sponsor gas fees when adding a passkey as a backup signer, see how to [send a gasless transaction](/delegation-toolkit/guides/smart-accounts/send-gasless-transaction). +- Learn more about [smart account implementations](/smart-accounts-kit/guides/smart-accounts/create-smart-account). +- To sponsor gas fees when adding a passkey as a backup signer, see how to [send a gasless transaction](/smart-accounts-kit/guides/smart-accounts/send-gasless-transaction). diff --git a/src/theme/DocSidebar/Desktop/index.tsx b/src/theme/DocSidebar/Desktop/index.tsx index 9575eddc419..5e59c5a13a5 100644 --- a/src/theme/DocSidebar/Desktop/index.tsx +++ b/src/theme/DocSidebar/Desktop/index.tsx @@ -13,7 +13,7 @@ import { SERVICES_DASHBOARD_CONFIG, SDK_WALLET_CONFIG, SNAPS_CONFIG, - DELEGATION_TOOLKIT_CONFIG, + SMART_ACCOUNTS_KIT_CONFIG, isPathInSections, } from '@site/src/components/SidebarSectionDropdown/configs' import type { PropSidebar } from '@docusaurus/plugin-content-docs' @@ -35,7 +35,7 @@ function DocSidebarDesktop({ path, sidebar, onCollapse, isHidden }: Props) { } = useThemeConfig() const location = useLocation() - const isSmartAccountsKitDocs = location.pathname.startsWith('/delegation-toolkit') + const isSmartAccountsKitDocs = location.pathname.startsWith('/smart-accounts-kit') const isServicesOrDashboard = isPathInSections( location.pathname, SERVICES_DASHBOARD_CONFIG.sections @@ -49,12 +49,12 @@ function DocSidebarDesktop({ path, sidebar, onCollapse, isHidden }: Props) { if (isSmartAccountsKitDocs) { smartAccountsKitTitle = (
      - +
      ) versionDropdown = (
      - +
      ) } diff --git a/src/theme/DocSidebar/Mobile/index.tsx b/src/theme/DocSidebar/Mobile/index.tsx index 22e8e998959..b64f6fb1182 100644 --- a/src/theme/DocSidebar/Mobile/index.tsx +++ b/src/theme/DocSidebar/Mobile/index.tsx @@ -16,7 +16,7 @@ import { SERVICES_DASHBOARD_CONFIG, SDK_WALLET_CONFIG, SNAPS_CONFIG, - DELEGATION_TOOLKIT_CONFIG, + SMART_ACCOUNTS_KIT_CONFIG, isPathInSections, } from '@site/src/components/SidebarSectionDropdown/configs' import type { Props } from '@theme/DocSidebar/Mobile' @@ -26,7 +26,7 @@ import styles from './styles.module.css' const DocSidebarMobileSecondaryMenu: NavbarSecondaryMenuComponent = ({ sidebar, path }) => { const mobileSidebar = useNavbarMobileSidebar() const location = useLocation() - const isSmartAccountsKitDocs = location.pathname.startsWith('/delegation-toolkit') + const isSmartAccountsKitDocs = location.pathname.startsWith('/smart-accounts-kit') const isServicesOrDashboard = isPathInSections( location.pathname, SERVICES_DASHBOARD_CONFIG.sections @@ -39,10 +39,10 @@ const DocSidebarMobileSecondaryMenu: NavbarSecondaryMenuComponent = ({ si {isSmartAccountsKitDocs && ( <>
    • - +
    • - +
    • )} diff --git a/src/theme/DocVersionBanner/index.jsx b/src/theme/DocVersionBanner/index.jsx index a3980344e98..c92dfab6a54 100644 --- a/src/theme/DocVersionBanner/index.jsx +++ b/src/theme/DocVersionBanner/index.jsx @@ -31,7 +31,7 @@ function UnmaintainedVersionLabel({ siteTitle, versionMetadata }) { versionLabel: {versionMetadata.label}, }}> { - 'This is documentation for the Delegation Toolkit version {versionLabel}, which is no longer actively maintained.' + 'This is documentation for the Smart Accounts Kit version {versionLabel}, which is no longer actively maintained.' } ) diff --git a/src/utils/tutorials-map.tsx b/src/utils/tutorials-map.tsx index 4c928c8de95..899fcdeb764 100644 --- a/src/utils/tutorials-map.tsx +++ b/src/utils/tutorials-map.tsx @@ -2,7 +2,7 @@ export const tags = { web3Auth: 'web3auth', embeddedWallet: 'embedded wallets', metamaskSdk: 'metamask sdk', - delegationToolkit: 'delegation toolkit', + smartAccountsKit: 'smart accounts kit', infura: 'infura', snaps: 'snaps', web: 'web', @@ -98,7 +98,7 @@ export const productMap = [ value: tags.embeddedWallet, }, { - label: 'Delegation Toolkit', - value: tags.delegationToolkit, + label: 'Smart Accounts Kit', + value: tags.smartAccountsKit, }, ] diff --git a/vercel.json b/vercel.json index a1c53866559..9d9521dae80 100644 --- a/vercel.json +++ b/vercel.json @@ -714,82 +714,6 @@ "source": "/services/reference/:path*/json-rpc-methods/eth_coinbase/", "destination": "/services/get-started/infura/" }, - { - "source": "/delegation-toolkit/how-to/create-smart-account/configure-accounts-signers/", - "destination": "/delegation-toolkit/guides/smart-accounts/create-smart-account/" - }, - { - "source": "/delegation-toolkit/how-to/create-smart-account/", - "destination": "/delegation-toolkit/guides/smart-accounts/create-smart-account/" - }, - { - "source": "/delegation-toolkit/how-to/send-user-operation/", - "destination": "/delegation-toolkit/guides/smart-accounts/send-user-operation/" - }, - { - "source": "/delegation-toolkit/how-to/generate-multisig-signature/", - "destination": "/delegation-toolkit/guides/smart-accounts/generate-multisig-signature/" - }, - { - "source": "/delegation-toolkit/how-to/configure/", - "destination": "/delegation-toolkit/guides/configure-toolkit/" - }, - { - "source": "/delegation-toolkit/how-to/create-delegation/", - "destination": "/delegation-toolkit/guides/delegation/execute-on-smart-accounts-behalf/" - }, - { - "source": "/delegation-toolkit/how-to/create-delegation/restrict-delegation/", - "destination": "/delegation-toolkit/guides/delegation/use-delegation-scopes/constrain-scope/" - }, - { - "source": "/delegation-toolkit/how-to/redeem-delegation/", - "destination": "/delegation-toolkit/guides/delegation/execute-on-smart-accounts-behalf/" - }, - { - "source": "/delegation-toolkit/get-started/quickstart/", - "destination": "/delegation-toolkit/get-started/smart-account-quickstart/" - }, - { - "source": "/delegation-toolkit/get-started/eip7702-quickstart/", - "destination": "/delegation-toolkit/get-started/smart-account-quickstart/eip7702/" - }, - { - "source": "/delegation-toolkit/get-started/cli-quickstart/", - "destination": "/delegation-toolkit/get-started/use-the-cli/" - }, - { - "source": "/delegation-toolkit/how-to/create-delegation/create-custom-caveat-enforcer/", - "destination": "/tutorials/create-custom-caveat-enforcer/" - }, - { - "source": "/delegation-toolkit/concepts/caveat-enforcers/", - "destination": "/delegation-toolkit/concepts/delegation/caveat-enforcers/" - }, - { - "source": "/delegation-toolkit/reference/caveats/", - "destination": "/delegation-toolkit/reference/delegation/caveats/" - }, - { - "source": "/delegation-toolkit/reference/api/delegation/", - "destination": "/delegation-toolkit/reference/delegation/" - }, - { - "source": "/delegation-toolkit/reference/api/smart-account/", - "destination": "/delegation-toolkit/reference/smart-account/" - }, - { - "source": "/delegation-toolkit/reference/api/experimental-actions/bundler-client", - "destination": "/delegation-toolkit/reference/erc7715/bundler-client/" - }, - { - "source": "/delegation-toolkit/reference/api/experimental-actions/wallet-client", - "destination": "/delegation-toolkit/reference/erc7715/wallet-client/" - }, - { - "source": "/delegation-toolkit/concepts/environment/", - "destination": "/delegation-toolkit/guides/configure-toolkit/" - }, { "source": "/developer-tools/faucet/sepolia/", "destination": "/developer-tools/faucet/" @@ -797,6 +721,10 @@ { "source": "/services/api/learn/pricing/", "destination": "/services/get-started/pricing/credit-cost/" + }, + { + "source": "/delegation-toolkit/:path*/", + "destination": "/smart-accounts-kit/" } ] } \ No newline at end of file diff --git a/wallet/how-to/send-transactions/send-batch-transactions.md b/wallet/how-to/send-transactions/send-batch-transactions.md index e46e9b001c2..46359c19375 100644 --- a/wallet/how-to/send-transactions/send-batch-transactions.md +++ b/wallet/how-to/send-transactions/send-batch-transactions.md @@ -14,13 +14,13 @@ You can send and manage batch transactions in MetaMask, using the methods specif ## About atomic batch transactions An atomic batch transaction is a group of transactions that are executed together as a single unit. -When a dapp requests to submit a batch of transactions atomically, MetaMask may prompt users to upgrade their externally owned account (EOA) to a [MetaMask smart account](/delegation-toolkit/concepts/smart-accounts). +When a dapp requests to submit a batch of transactions atomically, MetaMask may prompt users to upgrade their externally owned account (EOA) to a [MetaMask smart account](/smart-accounts-kit/concepts/smart-accounts). If the user accepts, MetaMask proceeds to upgrade the account and process the request as a single atomic transaction as specified by [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702). :::note 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, transaction batching, and custom security policies. -See the [Delegation Toolkit documentation](/delegation-toolkit) for more information about smart accounts and their capabilities. +See the [Smart Accounts Kit documentation](/smart-accounts-kit) for more information about smart accounts and their capabilities. ::: The key benefits of atomic batch transactions include: @@ -223,7 +223,7 @@ In these cases, `atomic` is `true` but multiple receipts are returned. ## Resources - See the [MetaMask 7702/5792 Readiness dapp](https://7702playground.metamask.io/) to quickly test sending batch transactions. -- See the [MetaMask Delegation Toolkit documentation](/delegation-toolkit) for more information about MetaMask Smart Accounts and their capabilities. +- See the [MetaMask Smart Accounts Kit documentation](/smart-accounts-kit) for more information about MetaMask Smart Accounts and their capabilities. - See the following topics in the MetaMask end user documentation: - [What is a smart account?](https://support.metamask.io/configure/accounts/what-is-a-smart-account/) - [How to switch to or revert from a smart account](https://support.metamask.io/configure/accounts/switch-to-or-revert-from-a-smart-account/) From 35c47816bc4c287720ad05d691b4a4c46d9f138f Mon Sep 17 00:00:00 2001 From: Alexandra Carrillo Date: Mon, 10 Nov 2025 09:55:51 -0800 Subject: [PATCH 2/3] fix quickstart link --- src/pages/quickstart/NavigationOverlay/NavigationFlow.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/quickstart/NavigationOverlay/NavigationFlow.tsx b/src/pages/quickstart/NavigationOverlay/NavigationFlow.tsx index 6b7f24bd730..32615271df4 100644 --- a/src/pages/quickstart/NavigationOverlay/NavigationFlow.tsx +++ b/src/pages/quickstart/NavigationOverlay/NavigationFlow.tsx @@ -60,7 +60,7 @@ const navigationOptions: NavigationOption[] = [ id: 'smart-accounts-kit-2', title: 'I want to perform executions on behalf of MetaMask users', description: 'Smart Accounts Kit', - link: '/smart-accounts-kit/guides/erc7715/execute-on-metamask-users-behalf', + link: '/smart-accounts-kit/guides/advanced-permissions/execute-on-metamask-users-behalf', }, { id: 'smart-accounts-kit-3', From 2b490aa61a5ce267c789aac00e4a71b376d7aa3d Mon Sep 17 00:00:00 2001 From: Alexandra Carrillo Date: Mon, 10 Nov 2025 10:22:50 -0800 Subject: [PATCH 3/3] minor edits --- smart-accounts-kit/concepts/advanced-permissions.md | 2 +- .../get-started/smart-account-quickstart/eip7702.md | 2 +- .../get-started/smart-account-quickstart/index.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/smart-accounts-kit/concepts/advanced-permissions.md b/smart-accounts-kit/concepts/advanced-permissions.md index c7a3ea8bd31..bc44351e52c 100644 --- a/smart-accounts-kit/concepts/advanced-permissions.md +++ b/smart-accounts-kit/concepts/advanced-permissions.md @@ -23,7 +23,7 @@ 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. -Smart Accounts Kit supports multiple signer types. The documentation uses [an account signer](../guides/advanced-permissions/execute-on-metamask-users-behalf.md) as a common implementation example. +The Smart Accounts Kit supports multiple signer types. The documentation uses [an account signer](../guides/advanced-permissions/execute-on-metamask-users-behalf.md) as a common implementation example. When you use an account signer, a session account is created solely to request and redeem Advanced Permissions, and doesn't 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). diff --git a/smart-accounts-kit/get-started/smart-account-quickstart/eip7702.md b/smart-accounts-kit/get-started/smart-account-quickstart/eip7702.md index 2c543c90bb0..796ecd01fd2 100644 --- a/smart-accounts-kit/get-started/smart-account-quickstart/eip7702.md +++ b/smart-accounts-kit/get-started/smart-account-quickstart/eip7702.md @@ -30,7 +30,7 @@ npm install @metamask/smart-accounts-kit ### 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 let the EOA query the account state and interact with blockchain network. +This client will let the EOA query the account state and interact with the blockchain network. ```typescript import { createPublicClient, http } from "viem"; diff --git a/smart-accounts-kit/get-started/smart-account-quickstart/index.md b/smart-accounts-kit/get-started/smart-account-quickstart/index.md index 19a34bbe794..8f0619af6bf 100644 --- a/smart-accounts-kit/get-started/smart-account-quickstart/index.md +++ b/smart-accounts-kit/get-started/smart-account-quickstart/index.md @@ -26,7 +26,7 @@ npm install @metamask/smart-accounts-kit ### 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 let the smart account query the signer's account state and interact with blockchain network. +Set up a [Viem Public Client](https://viem.sh/docs/clients/public) using Viem's `createPublicClient` function. This client will let the smart account query the signer's account state and interact with the blockchain network. ```typescript import { createPublicClient, http } from "viem";