Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 hellogators@consensys.net.

Expand Down
6 changes: 3 additions & 3 deletions delegation-toolkit/get-started/use-the-cli.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
---
description: Get started with the MetaMask Delegation Toolkit using the `@metamask/create-gator-app` CLI.
description: Get started with the MetaMask Smart Accounts Kit using the `@metamask/create-gator-app` CLI.
sidebar_label: Use the CLI
keywords: [CLI, delegation, smart accounts, template]
---

# Use the Delegation Toolkit CLI
# Use the Smart Accounts Kit CLI

Use the `@metamask/create-gator-app` interactive CLI to bootstrap a project with the MetaMask Delegation Toolkit in under two minutes.
Use the `@metamask/create-gator-app` interactive CLI to bootstrap a project with the Smart Accounts Kit in under two minutes.
The CLI automatically installs the required dependencies and sets up a project structure using a selected template,
allowing you to focus on building your dapp.

Expand Down
Loading
Loading