Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
0b79037
SDK new structure PoC
alexandratran Sep 23, 2025
44a6248
edits
alexandratran Sep 24, 2025
f234baf
remove custom reference component
alexandratran Sep 24, 2025
f331654
edits
alexandratran Sep 25, 2025
e2f4b8b
Merge branch 'main' into sdk-new-structure
alexandratran Sep 30, 2025
ef20ee1
fix links, update redirects, "metamask wallet sdk"
alexandratran Sep 30, 2025
39b9b16
Merge branch 'main' into sdk-new-structure
alexandratran Oct 16, 2025
905d9a8
add simplified api reference with two examples
alexandratran Oct 18, 2025
549887c
missing files
alexandratran Oct 18, 2025
1b97b2c
Merge branch 'main' into sdk-new-structure
alexandratran Oct 20, 2025
bb103fb
remove starknet docs
alexandratran Oct 21, 2025
8216d8b
copy over solana docs
alexandratran Oct 21, 2025
34aed2c
Merge branch 'main' into sdk-new-structure
alexandratran Oct 22, 2025
d64e8a4
Merge branch 'main' into sdk-new-structure
alexandratran Oct 23, 2025
e02092a
Update terminology and restructure EVM docs
alexandratran Oct 23, 2025
956c09a
fix broken links
alexandratran Oct 23, 2025
86d2dfc
Merge branch 'main' into sdk-new-structure
alexandratran Nov 4, 2025
f70f940
fix broken links
alexandratran Nov 4, 2025
e1e0008
Add/update Solana Wallet Adapter docs (#2443)
alexandratran Nov 7, 2025
37a4d06
Merge branch 'main' into sdk-new-structure
alexandratran Nov 10, 2025
30d0439
Update mobile products menu
alexandratran Nov 10, 2025
3db005f
Update MM Connect EVM JS code samples with potential new usage (#2454)
alexandratran Nov 12, 2025
d122361
Merge branch 'main' into sdk-new-structure
alexandratran Nov 13, 2025
360383d
Remove ParserOpenRPC component and replace usage in Linea services
alexandratran Nov 14, 2025
98476fe
Merge branch 'main' into sdk-new-structure
alexandratran Nov 18, 2025
c04fb6d
fix broken link
alexandratran Nov 18, 2025
b034e01
Add more multichain info (#2479)
alexandratran Nov 18, 2025
77bb9a9
Merge branch 'main' into sdk-new-structure
alexandratran Nov 27, 2025
b4716d6
Enhance JS section {WIP} (#2450)
shahbaz17 Nov 27, 2025
2a6e4ab
Add view & wagmi options
shahbaz17 Nov 27, 2025
6cf2880
Merge branch 'main' into sdk-new-structure
alexandratran Nov 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Prev Previous commit
Next Next commit
Merge branch 'main' into sdk-new-structure
# Conflicts:
#	sdk-sidebar.js
#	sdk/evm/connect/guides/dynamic.md
#	sdk/evm/connect/guides/javascript-connectkit.md
#	sdk/evm/connect/guides/javascript/index.md
#	sdk/evm/connect/guides/rainbowkit.md
#	sdk/evm/connect/guides/wagmi/index.md
#	sdk/evm/connect/guides/web3auth.md
#	sdk/index.md
  • Loading branch information
alexandratran committed Nov 4, 2025
commit 86d2dfc46358102f1a1f3a8f4d380c58fe43e92b
24 changes: 12 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,15 @@ jobs:
with:
FILEPATHS: 'snaps,services,wallet,developer-tools,docs'

linkCheck:
name: Link Checking
runs-on: ubuntu-latest
strategy:
matrix:
file-extensions: ['.md', '.mdx']
steps:
- uses: actions/checkout@v5
- name: LinkCheck
uses: ConsenSys/github-actions/docs-link-check@main
with:
FILE_EXTENSION: ${{ matrix.file-extensions }}
# linkCheck:
# name: Link Checking
# runs-on: ubuntu-latest
# strategy:
# matrix:
# file-extensions: ['.md', '.mdx']
# steps:
# - uses: actions/checkout@v5
# - name: LinkCheck
# uses: ConsenSys/github-actions/docs-link-check@main
# with:
# FILE_EXTENSION: ${{ matrix.file-extensions }}
36 changes: 18 additions & 18 deletions .github/workflows/trivy.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
---
name: Trivy

on:
pull_request:
branches:
- main

jobs:
trivy:
name: Run trivy scanner
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Trivy
uses: ConsenSys/github-actions/trivy@main
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# ---
# name: Trivy
#
# on:
# pull_request:
# branches:
# - main
#
# jobs:
# trivy:
# name: Run trivy scanner
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v5
# - name: Trivy
# uses: ConsenSys/github-actions/trivy@main
# with:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6 changes: 3 additions & 3 deletions delegation-toolkit/concepts/delegation/caveat-enforcers.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ keywords: [caveats, caveat enforcers, delegation]

# Caveat enforcers

The MetaMask Delegation Toolkit provides *caveat enforcers*, which are smart contracts that implement rules and restrictions (*caveats*) on delegations.
The Smart Accounts Kit provides *caveat enforcers*, which are smart contracts that implement rules and restrictions (*caveats*) on delegations.
They serve as the underlying mechanism that enables conditional execution within the [Delegation Framework](./index.md#delegation-framework).

A caveat enforcer acts as a gate that validates whether a delegation can be used for a particular execution. When a delegate attempts to execute an action on behalf of a delegator, each caveat enforcer specified in the delegation evaluates whether the execution meets its defined criteria.
Expand Down Expand Up @@ -119,7 +119,7 @@ This "all-or-nothing" approach ensures that delegations only execute exactly as

## Caveat builder

While caveat enforcers operate at the smart contract level, most developers interact with them through the `CaveatBuilder` interface in the MetaMask Delegation Toolkit.
While caveat enforcers operate at the smart contract level, most developers interact with them through the `CaveatBuilder` interface in the Smart Accounts Kit.

The `CaveatBuilder` provides a developer-friendly TypeScript API that:

Expand Down Expand Up @@ -152,7 +152,7 @@ When designing delegations with caveats, consider these best practices:

## Available caveat enforcers

The Delegation Toolkit provides [out-of-the-box caveat enforcers](../../reference/delegation/caveats.md)
The Smart Accounts Kit provides [out-of-the-box caveat enforcers](../../reference/delegation/caveats.md)
for common restriction patterns, including:

- Limiting target addresses and methods.
Expand Down
8 changes: 4 additions & 4 deletions delegation-toolkit/concepts/delegation/index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
description: Learn about delegation, the delegation lifecycle, and the Delegation Framework.
toc_max_heading_level: 2
keywords: [delegation toolkit, delegation, delegator, delegate, delegation framework]
keywords: [smart accounts kit, delegation, delegator, delegate, delegation framework]
---

import Tabs from "@theme/Tabs";
Expand All @@ -14,7 +14,7 @@ or externally owned account (EOA) to perform specific executions on its behalf.
The account that grants the permission is called the *delegator account*, while the account that receives the permission
is called the *delegate account*.

The MetaMask Delegation Toolkit follows the [ERC-7710](https://eips.ethereum.org/EIPS/eip-7710) standard for smart contract delegation.
The Smart Accounts Kit follows the [ERC-7710](https://eips.ethereum.org/EIPS/eip-7710) standard for smart contract delegation.
In addition, users can use [caveat enforcers](caveat-enforcers.md) to apply rules and restrictions to delegations.
For example: Alice delegates the ability to spend her USDC to Bob, limiting the amount to 100 USDC.

Expand Down Expand Up @@ -65,7 +65,7 @@ You can create the following delegation types:

## Delegation Framework

The MetaMask Delegation Toolkit includes the Delegation Framework, which is a
The Smart Accounts Kit includes the Delegation Framework, which is a
[set of comprehensively audited smart contracts](https://github.com/MetaMask/delegation-framework) that
collectively handle delegator account creation, the delegation lifecycle,
and caveat enforcement.
Expand Down Expand Up @@ -152,7 +152,7 @@ sequenceDiagram
## Execution modes

When redeeming a delegation using [`redeemDelegations`](../../reference/delegation/index.md#redeemdelegations), you must pass an execution mode for each delegation chain you pass to the method.
The Delegation Toolkit supports the following execution modes, based on [ERC-7579](https://erc7579.com/):
The Smart Accounts Kit supports the following execution modes, based on [ERC-7579](https://erc7579.com/):

| Execution mode | Number of delegation chains passed to `redeemDelegations` | Processing method | Does user operation continue execution if redemption reverts? |
|--|--|--|--|
Expand Down
6 changes: 3 additions & 3 deletions delegation-toolkit/concepts/erc7715.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ 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.
The Smart Accounts Kit 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.

Expand All @@ -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.

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.
The Smart Accounts Kit 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).
Expand Down Expand Up @@ -56,7 +56,7 @@ 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.
The Delegation Toolkit supports [ERC-20 token permissions](../guides/erc7715/use-permissions/erc20-token.md) and
The Smart Accounts Kit 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 can redeem the permission, executing on the user's behalf.
Expand Down
4 changes: 2 additions & 2 deletions delegation-toolkit/concepts/smart-accounts.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ keywords: [MetaMask, smart accounts, account abstraction, ERC-4337]

# MetaMask Smart Accounts

The MetaMask Delegation Toolkit enables you to create and manage MetaMask Smart Accounts.
The Smart Accounts Kit 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.
Expand Down Expand Up @@ -37,7 +37,7 @@ ERC-4337 introduces the following concepts:

## Smart account implementation types

The MetaMask Delegation Toolkit supports three types of MetaMask Smart Accounts, each offering unique features and use cases.
The toolkit supports three types of MetaMask Smart Accounts, each offering unique features and use cases.

See [Create a smart account](../guides/smart-accounts/create-smart-account.md) to learn how to use these different account types.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ This is an experimental feature and may change in future releases.
[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
The MetaMask Smart Accounts Kit provides two experimental functions, `erc7710BundlerActions()` and `erc7710WalletActions()`, that let
a caller redeem delegations granted by MetaMask's permissions system.

## Extract relevant data
Expand Down Expand Up @@ -128,8 +128,8 @@ import { createPublicClient, http, createBundlerClient } from "viem";
import { generatePrivateKey, privateKeyToAccount } from "viem/accounts";
import { sepolia as chain } from "viem/chains";
import { createBundlerClient } from "viem/account-abstraction";
import { erc7710BundlerActions } from "@metamask/delegation-toolkit/experimental";
import { toMetaMaskSmartAccount, Implementation } from "@metamask/delegation-toolkit";
import { erc7710BundlerActions } from "@metamask/smart-accounts-kit/experimental";
import { toMetaMaskSmartAccount, Implementation } from "@metamask/smart-accounts-kit";

export const publicClient = createPublicClient({
chain: chain,
Expand Down Expand Up @@ -212,7 +212,7 @@ const hash = walletClient.sendTransactionWithDelegation({
import { http, createPublicClient, createWalletClient } from "viem";
import { generatePrivateKey, privateKeyToAccount } from "viem/accounts";
import { sepolia as chain } from "viem/chains";
import { erc7710WalletActions } from "@metamask/delegation-toolkit/experimental";
import { erc7710WalletActions } from "@metamask/smart-accounts-kit/experimental";

export const publicClient = createPublicClient({
chain,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ It requires MetaMask Flask 13.5.0 or later, and may change in future releases.
[ERC-7715](https://eip.tools/eip/7715) introduces a standard way for dapps to request permissions from a wallet to execute
transactions on a user's behalf.

The MetaMask Delegation Toolkit provides the experimental actions for ERC-7715 that lets a caller request permissions from MetaMask's permissions system.
The MetaMask Smart Accounts Kit provides the experimental actions for ERC-7715 that lets a caller request permissions from MetaMask's permissions system.

## Request permissions

Expand Down Expand Up @@ -63,8 +63,8 @@ const grantedPermissions = await walletClient.grantPermissions([{
import { createWalletClient, custom, createPublicClient, http } from "viem";
import { generatePrivateKey, privateKeyToAccount } from "viem/accounts";
import { sepolia as chain } from "viem/chains";
import { erc7715ProviderActions } from "@metamask/delegation-toolkit/experimental";
import { toMetaMaskSmartAccount, Implementation } from "@metamask/delegation-toolkit";
import { erc7715ProviderActions } from "@metamask/smart-accounts-kit/experimental";
import { toMetaMaskSmartAccount, Implementation } from "@metamask/smart-accounts-kit";

const publicClient = createPublicClient({
chain: chain,
Expand Down
10 changes: 5 additions & 5 deletions delegation-toolkit/experimental/store-retrieve-delegations.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Create the `DelegationStorageClient` instance, and configure it using your API k
import {
DelegationStorageClient,
DelegationStorageEnvironment
} from "@metamask/delegation-toolkit/experimental";
} from "@metamask/smart-accounts-kit/experimental";

const delegationStorageClient = new DelegationStorageClient({
apiKey: "<YOUR-API-KEY>",
Expand Down Expand Up @@ -62,7 +62,7 @@ const delegationHash = await delegationStorageClient.storeDelegation(delegation)
import {
DelegationStorageClient,
DelegationStorageEnvironment
} from "@metamask/delegation-toolkit/experimental";
} from "@metamask/smart-accounts-kit/experimental";

export const delegationStorageClient = new DelegationStorageClient({
apiKey: "<YOUR-API-KEY>",
Expand Down Expand Up @@ -90,7 +90,7 @@ A delegation can be a root delegation, where its `authority` is `0xfffffffffffff

```typescript
import { delegationStorageClient } from "./config.ts";
import { getDelegationHashOffchain } from "@metamask/delegation-toolkit";
import { getDelegationHashOffchain } from "@metamask/smart-accounts-kit";

// Assuming you have the leaf delegation
const delegationHash = getDelegationHashOffchain(leafDelegation);
Expand All @@ -107,7 +107,7 @@ const delegationChain: Delegation[] = await delegationStorageClient.getDelegatio
import {
DelegationStorageClient,
DelegationStorageEnvironment
} from "@metamask/delegation-toolkit/experimental";
} from "@metamask/smart-accounts-kit/experimental";

export const delegationStorageClient = new DelegationStorageClient({
apiKey: "<YOUR-API-KEY>",
Expand Down Expand Up @@ -158,7 +158,7 @@ const receivedDelegations = await delegationStore.fetchDelegations(
import {
DelegationStorageClient,
DelegationStorageEnvironment
} from "@metamask/delegation-toolkit/experimental";
} from "@metamask/smart-accounts-kit/experimental";

export const delegationStorageClient = new DelegationStorageClient({
apiKey: "<YOUR-API-KEY>",
Expand Down
16 changes: 8 additions & 8 deletions delegation-toolkit/get-started/install.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
---
sidebar_label: Install and set up
description: Learn how to install and set up the MetaMask Delegation Toolkit.
keywords: [install, MetaMask, delegation, toolkit, smart, accounts]
description: Learn how to install and set up the MetaMask Smart Accounts Kit.
keywords: [install, MetaMask, delegation, smart accounts kit, smart, accounts]
---

import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";

# Install and set up the Delegation Toolkit
# Install and set up the Smart Accounts Kit

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.
This page provides instructions to install and set up the Smart Accounts Kit, enabling you to create and interact with [MetaMask Smart Accounts](../concepts/smart-accounts.md) into your dapp.

## Prerequisites

Expand All @@ -22,12 +22,12 @@ This page provides instructions to install and set up the MetaMask Delegation To

## Steps

### 1. Install the toolkit
### 1. Install the Smart Accounts Kit

Install the [MetaMask Delegation Toolkit](https://www.npmjs.com/package/@metamask/delegation-toolkit):
Install the [Smart Accounts Kit](https://www.npmjs.com/package/@metamask/smart-accounts-kit):

```bash npm2yarn
npm install @metamask/delegation-toolkit
npm install @metamask/smart-accounts-kit
```

### 2. (Optional) Install the contracts
Expand All @@ -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 Delegation Toolkit.
You're now ready to start using the Smart Accounts Kit.
See the [MetaMask Smart Accounts quickstart](smart-account-quickstart/index.md) to walk through a simple example.
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ abstraction, such as batch transactions, gas sponsorship, and [delegation capabi

## Steps

### 1. Install the toolkit
### 1. Install the Smart Accounts Kit

Install the [MetaMask Delegation Toolkit](https://www.npmjs.com/package/@metamask/delegation-toolkit):
Install the [Smart Accounts Kit](https://www.npmjs.com/package/@metamask/smart-accounts-kit):

```bash npm2yarn
npm install @metamask/delegation-toolkit
npm install @metamask/smart-accounts-kit
```

### 2. Set up a Public Client
Expand Down Expand Up @@ -89,11 +89,11 @@ provides a lightweight and secure way to upgrade an EOA to a smart account.
import {
Implementation,
toMetaMaskSmartAccount,
getDeleGatorEnvironment,
} from "@metamask/delegation-toolkit";
getSmartAccountsEnvironment,
} from "@metamask/smart-accounts-kit";
import { privateKeyToAccount } from "viem/accounts";

const environment = getDeleGatorEnvironment(sepolia.id);
const environment = getSmartAccountsEnvironment(sepolia.id);
const contractAddress = environment.implementations.EIP7702StatelessDeleGatorImpl;

const authorization = await walletClient.signAuthorization({
Expand Down Expand Up @@ -127,7 +127,7 @@ leveraging the benefits of account abstraction.
import {
Implementation,
toMetaMaskSmartAccount,
} from "@metamask/delegation-toolkit";
} from "@metamask/smart-accounts-kit";

const addresses = await walletClient.getAddresses();
const address = addresses[0];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@ You can get started quickly with [MetaMask Smart Accounts](../../concepts/smart-

## Steps

### 1. Install the toolkit
### 1. Install the Smart Accounts Kit

Install the [MetaMask Delegation Toolkit](https://www.npmjs.com/package/@metamask/delegation-toolkit):
Install the [Smart Accounts Kit](https://www.npmjs.com/package/@metamask/smart-accounts-kit):

```bash npm2yarn
npm install @metamask/delegation-toolkit
npm install @metamask/smart-accounts-kit
```

### 2. Set up a Public Client
Expand Down Expand Up @@ -59,7 +59,7 @@ This example configures 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:

```typescript
import { Implementation, toMetaMaskSmartAccount } from "@metamask/delegation-toolkit";
import { Implementation, toMetaMaskSmartAccount } from "@metamask/smart-accounts-kit";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount("0x...");
Expand Down
6 changes: 3 additions & 3 deletions delegation-toolkit/get-started/supported-networks.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
title: Supported networks
sidebar_label: Supported networks
description: Supported networks for Delegation Toolkit.
keywords: [MetaMask, delegation toolkit, supported networks, mainnet, testnet]
description: Supported networks for Smart Accounts Kit.
keywords: [MetaMask, smart accounts kit, supported networks, mainnet, testnet]
---

The following tables display the networks supported by each version of the MetaMask Delegation Toolkit.
The following tables display the networks supported by each version of the Smart Accounts Kit.

If you don't see the network you're looking for, you can request support by emailing [email protected].

Expand Down
Loading
Loading
You are viewing a condensed version of this merge commit. You can view the full changes here.