Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 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
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
111 changes: 0 additions & 111 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,6 @@ guide in some places.
- [Preview locally](#preview-locally)
- [Style guide](#style-guide)
- [Add images](#add-images)
- [Update the interactive API reference](#update-the-interactive-api-reference)
- [Update `MetaMask/api-specs`](#update-metamaskapi-specs)
- [Update `ethereum/execution-apis`](#update-ethereumexecution-apis)
- [Test analytics](#test-analytics)

## Contribution workflow
Expand Down Expand Up @@ -125,114 +122,6 @@ When adding a new image, such as a screenshot or diagram, make sure the image ha

Additionally, follow the [Consensys guidelines on adding images](https://docs-template.consensys.net/contribute/add-images).

## Update the interactive API reference

The [Wallet JSON-RPC API reference](https://docs.metamask.io/wallet/reference/json-rpc-api/) uses
an internal plugin to import and parse OpenRPC
specifications from [`MetaMask/api-specs`](https://github.com/MetaMask/api-specs) (MetaMask-specific
methods) and [`ethereum/execution-apis`](https://github.com/ethereum/execution-apis) (standard
Ethereum methods).
The site renders documentation for each method based on the specification, and displays an
interactive module to test the methods in your browser.

### Update `MetaMask/api-specs`

To update documentation for MetaMask-specific JSON-RPC API methods:

1. Fork [`MetaMask/api-specs`](https://github.com/MetaMask/api-specs), clone the forked repository
to your computer, and navigate into it:

```bash
git clone git@github.com:<YOUR-USERNAME>/api-specs.git
cd api-specs
```

2. Follow the repository's [`README.md`](https://github.com/MetaMask/api-specs/blob/main/README.md)
instructions to edit the OpenRPC specification and generate the output file, `openrpc.json`.

3. To test the API updates in the MetaMask doc site's interactive reference:

1. Create and switch to a temporary local branch of the doc site, [`MetaMask/metamask-docs`](https://github.com/MetaMask/metamask-docs).
For example, to create and switch to a branch named `test-api-updates`:
```bash
cd metamask-docs
git checkout -b test-api-updates
```
2. Copy and paste the output file `openrpc.json` into the root directory of `metamask-docs`.
3. Use [`http-server`](https://www.npmjs.com/package/http-server) to serve `openrpc.json` locally.
Install `http-server` if you haven't yet, and start the server:
```bash
npm install --global http-server
http-server
```
The `openrpc.json` file is now served at [`http://127.0.0.1:8080/openrpc.json`](http://127.0.0.1:8080/openrpc.json).
4. In `src/plugins/plugin-json-rpc.ts`, update the following line to point to the locally served `openrpc.json` file:
```diff
- export const MM_RPC_URL = "https://metamask.github.io/api-specs/latest/openrpc.json";
+ export const MM_RPC_URL = "http://127.0.0.1:8080/openrpc.json";
```
5. In a new terminal window, preview the doc site locally:
```bash
cd metamask-docs
npm start
```
6. Navigate to the API reference, and view your updates.

4. Add and commit your changes to `api-specs`, and create a PR.

5. Once your PR is approved and merged, the following must happen to publish the changes to the
MetaMask doc site:

1. A new version of `api-specs` must be released by a user with write access to the repository.
To release, go to the [Create Release Pull Request](https://github.com/MetaMask/api-specs/actions/workflows/create-release-pr.yml)
action, select **Run workflow**, and enter a specific version to bump to in the last text box
(for example, `0.10.6`). This creates a PR releasing a version of `api-specs`.
2. Once the release PR is merged, the [Publish Release](https://github.com/MetaMask/api-specs/actions/workflows/publish-release.yml)
action must be approved by an npm publisher.
You can request an approval in the **#metamask-dev** Slack channel tagging
**@metamask-npm-publishers**.
For example:
> @metamask-npm-publishers `@metamask/api-specs@0.10.6` is awaiting deployment :rocketship:
https://github.com/MetaMask/api-specs/actions/runs/10615788573

### Update `ethereum/execution-apis`

To update documentation for standard Ethereum JSON-RPC API methods:

1. Fork [`ethereum/execution-apis`](https://github.com/ethereum/execution-apis), clone the forked
repository to your computer, and navigate into it:

```bash
git clone git@github.com:<YOUR-USERNAME>/execution-apis.git
cd execution-apis
```

2. Follow the repository's [`README.md`](https://github.com/ethereum/execution-apis/blob/main/README.md)
instructions to edit the OpenRPC specification and generate the output file, `openrpc.json`.

3. To test the API updates in the MetaMask doc site's interactive reference, complete Step 3 in
[Update `MetaMask/api-specs`](#update-metamaskapi-specs).

4. Add and commit your changes to `execution-apis`, and create a PR.

5. Once your PR is approved and merged, the following must happen to publish the changes to the
MetaMask doc site:

1. `api-specs` must import the updated Ethereum API specification.
Go to the [commit history](https://github.com/ethereum/execution-apis/commits/assembled-spec/)
of the `assembled-spec` branch of `execution-apis`.
Copy the full commit hash of the latest commit titled "assemble openrpc.json."
Update the following line in `merge-openrpc.js` of `api-specs` with the updated commit hash,
and create a PR:
```diff
const getFilteredExecutionAPIs = () => {
- return fetch("https://raw.githubusercontent.com/ethereum/execution-apis/ac19b518a2596221cd7cd6421ee3dc654d7ff3b7/refs-openrpc.json")
+ return fetch("https://raw.githubusercontent.com/ethereum/execution-apis/f75d4cc8eeb5d1952bd69f901954686b74c34c9b/refs-openrpc.json")
```
2. Once the change to `merge-openrpc.js` is merged, Step 5 in
[Update `MetaMask/api-specs`](#update-metamaskapi-specs) must be completed to publish the
changes to the MetaMask doc site.

## Test analytics

The [`docusaurus-plugin-segment`](https://github.com/xer0x/docusaurus-plugin-segment) plugin enables
Expand Down
45 changes: 5 additions & 40 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,6 @@ import fs from 'fs'
require('dotenv').config()
const { themes } = require('prism-react-renderer')
const { REF_ALLOW_LOGIN_PATH } = require('./src/lib/constants')
const {
fetchAndGenerateDynamicSidebarItems,
NETWORK_NAMES,
MM_REF_PATH,
MM_RPC_URL,
} = require('./src/plugins/plugin-json-rpc')
const codeTheme = themes.dracula
const productsDropdown = fs.readFileSync('./src/components/NavDropdown/Products.html', 'utf-8')
const baseUrl = process.env.DEST || '/'
Expand Down Expand Up @@ -254,31 +248,6 @@ const config = {
rehypePlugins,
},
],
[
'@docusaurus/plugin-content-docs',
{
id: 'wallet',
path: 'wallet',
routeBasePath: 'wallet',
editUrl: 'https://github.com/MetaMask/metamask-docs/edit/main/',
sidebarPath: require.resolve('./wallet-sidebar.js'),
breadcrumbs: false,
remarkPlugins,
rehypePlugins,
sidebarItemsGenerator: async function ({ defaultSidebarItemsGenerator, ...args }) {
const sidebarItems = await defaultSidebarItemsGenerator(args)
const dynamicItems = await fetchAndGenerateDynamicSidebarItems(
MM_RPC_URL,
MM_REF_PATH,
NETWORK_NAMES.metamask
)
if (args.item.dirName === 'reference/json-rpc-methods') {
return [...sidebarItems, ...dynamicItems]
}
return sidebarItems
},
},
],
[
'@docusaurus/plugin-content-docs',
{
Expand Down Expand Up @@ -326,7 +295,7 @@ const config = {
{
name: 'keywords',
content:
'MetaMask, Embedded Wallets, Quickstart, Web3 Development, SDK, Wallet Integration, API, Dapp Development, Blockchain Development, Ethereum Development, Smart Contract, Account Abstraction, Snaps, Crypto Wallet, DeFi, NFT, Infura, Services, Dashboard',
'MetaMask, Embedded Wallets, Quickstart, Web3 Development, SDK, MM Connect, Wallet Integration, API, Dapp Development, Blockchain Development, Ethereum Development, Smart Contract, Account Abstraction, Snaps, Crypto Wallet, DeFi, NFT, Infura, Services, Dashboard',
},
// Twitter-specific meta tags
{
Expand Down Expand Up @@ -445,21 +414,17 @@ const config = {
title: 'Documentation',
items: [
{
label: 'SDK',
label: 'MM Connect',
to: '/sdk',
},
{
label: 'Wallet API',
to: '/wallet',
label: 'Embedded Wallets',
to: '/embedded-wallets',
},
{
label: 'Smart Accounts Kit',
to: '/smart-accounts-kit',
},
{
label: 'Embedded Wallets',
to: '/embedded-wallets',
},
{
label: 'Snaps',
to: '/snaps',
Expand All @@ -486,7 +451,7 @@ const config = {
href: 'https://github.com/MetaMask/metamask-extension/',
},
{
label: 'MetaMask SDK GitHub',
label: 'MM Connect GitHub',
href: 'https://github.com/MetaMask/metamask-sdk/',
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -168,4 +168,4 @@ const userOperationHash = await bundlerClient.sendUserOperation({

- To grant specific permissions to other accounts from your smart account, [create a delegation](../../guides/delegation/execute-on-smart-accounts-behalf.md).
- To quickly bootstrap a MetaMask Smart Accounts project, [use the CLI](../use-the-cli.md).
- You can also [use MetaMask SDK to upgrade a MetaMask account to a smart account](/tutorials/upgrade-eoa-to-smart-account).
- You can also [use MM Connect to upgrade a MetaMask account to a smart account](/tutorials/upgrade-eoa-to-smart-account).
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ const sessionAccount = privateKeyToAccount("0x...");
Currently, ERC-7715 does not support automatically upgrading a MetaMask user's account to a [MetaMask smart account](../../concepts/smart-accounts.md). Therefore, you must
ensure that the user is upgraded to a smart account before requesting ERC-7715 permissions.

If the user has not yet been upgraded, you can handle the upgrade [programmatically](/wallet/how-to/send-transactions/send-batch-transactions/#about-atomic-batch-transactions) or ask the
If the user has not yet been upgraded, you can handle the upgrade [programmatically](/sdk/evm/connect/guides/javascript/send-transactions/batch-transactions) or ask the
user to [switch to a smart account manually](https://support.metamask.io/configure/accounts/switch-to-or-revert-from-a-smart-account/#how-to-switch-to-a-metamask-smart-account).

:::info Why is a Smart Account upgrade is required?
Expand Down
Loading
Loading