MCPcopy Index your code
hub / github.com/MetaMask/snaps

github.com/MetaMask/snaps @v160.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v160.0.0 ↗ · + Follow
1,777 symbols 6,372 edges 1,379 files 451 documented · 25%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

MetaMask Snaps

Extend the functionality of MetaMask using MetaMask Snaps.

Modules

This repository contains the following packages [^fn1]:

Or, in graph form [^fn1]:

%%{ init: { 'flowchart': { 'curve': 'bumpX' } } }%%
graph LR;
linkStyle default opacity:0.5
  create_snap(["@metamask/create-snap"]);
  snaps_cli(["@metamask/snaps-cli"]);
  snaps_controllers(["@metamask/snaps-controllers"]);
  snaps_execution_environments(["@metamask/snaps-execution-environments"]);
  snaps_jest(["@metamask/snaps-jest"]);
  snaps_rollup_plugin(["@metamask/snaps-rollup-plugin"]);
  snaps_rpc_methods(["@metamask/snaps-rpc-methods"]);
  snaps_sandbox(["@metamask/snaps-sandbox"]);
  snaps_sdk(["@metamask/snaps-sdk"]);
  snaps_simulation(["@metamask/snaps-simulation"]);
  snaps_utils(["@metamask/snaps-utils"]);
  snaps_webpack_plugin(["@metamask/snaps-webpack-plugin"]);
  create_snap --> snaps_utils;
  snaps_cli --> snaps_rpc_methods;
  snaps_cli --> snaps_sandbox;
  snaps_cli --> snaps_sdk;
  snaps_cli --> snaps_utils;
  snaps_cli --> snaps_webpack_plugin;
  snaps_controllers --> snaps_rpc_methods;
  snaps_controllers --> snaps_sdk;
  snaps_controllers --> snaps_utils;
  snaps_execution_environments --> snaps_sdk;
  snaps_execution_environments --> snaps_utils;
  snaps_jest --> snaps_controllers;
  snaps_jest --> snaps_sdk;
  snaps_jest --> snaps_simulation;
  snaps_jest --> snaps_utils;
  snaps_rollup_plugin --> snaps_utils;
  snaps_rpc_methods --> snaps_sdk;
  snaps_rpc_methods --> snaps_utils;
  snaps_simulation --> snaps_controllers;
  snaps_simulation --> snaps_execution_environments;
  snaps_simulation --> snaps_rpc_methods;
  snaps_simulation --> snaps_sdk;
  snaps_simulation --> snaps_utils;
  snaps_utils --> snaps_sdk;
  snaps_webpack_plugin --> snaps_rpc_methods;
  snaps_webpack_plugin --> snaps_sdk;
  snaps_webpack_plugin --> snaps_utils;

Refer to individual packages for usage instructions.

Learn more

For instructions on performing common development-related tasks, see contributing to the monorepo.

[^fn1]: The package list and dependency graph should be programmatically generated by running yarn update-readme-content.

Extension points exported contracts — how you extend this code

DataMap (Interface)
(no doc)
packages/snaps-utils/src/virtual-file/VirtualFile.ts
DataMap (Interface)
(no doc)
packages/snaps-controllers/src/snaps/location/location.ts
SnapsMatchers (Interface)
(no doc)
packages/snaps-jest/src/global.ts
Window (Interface)
(no doc)
packages/snaps-sandbox/src/global.d.ts
Window (Interface)
(no doc)
packages/test-snaps/src/api.ts
AsymmetricMatchers (Interface)
(no doc)
packages/snaps-jest/src/global.ts
WindowEventMap (Interface)
(no doc)
packages/snaps-sandbox/src/global.d.ts
WindowEventMap (Interface)
(no doc)
packages/test-snaps/src/api.ts

Core symbols most depended-on inside this repo

registerActionHandler
called by 534
packages/snaps-utils/src/test-utils/controller.ts
destroy
called by 266
packages/snaps-controllers/src/snaps/SnapController.ts
getSnapControllerOptions
called by 255
packages/snaps-controllers/src/test-utils/controller.tsx
getSnapManifest
called by 224
packages/snaps-utils/src/test-utils/manifest.ts
getSnapController
called by 220
packages/snaps-controllers/src/test-utils/controller.tsx
installSnap
called by 179
packages/snaps-jest/src/helpers.ts
getPersistedSnapsState
called by 171
packages/snaps-controllers/src/test-utils/controller.tsx
request
called by 165
packages/test-snaps/src/api.ts

Shape

Function 1,206
Method 389
Class 145
Enum 28
Interface 9

Languages

TypeScript100%

Modules by API surface

packages/snaps-controllers/src/snaps/SnapController.ts105 symbols
packages/snaps-controllers/src/test-utils/controller.tsx30 symbols
packages/snaps-simulation/src/interface.ts26 symbols
packages/snaps-execution-environments/src/common/endowments/network.ts26 symbols
packages/snaps-cli/src/webpack/plugins.ts25 symbols
packages/snaps-controllers/src/interface/SnapInterfaceController.ts24 symbols
packages/snaps-utils/src/ui.tsx22 symbols
yarn.config.cjs20 symbols
packages/snaps-execution-environments/src/common/BaseSnapExecutor.ts19 symbols
packages/snaps-controllers/src/snaps/location/npm.ts19 symbols
packages/snaps-controllers/src/cronjob/CronjobController.ts19 symbols
packages/snaps-utils/src/structs.ts17 symbols

For agents

$ claude mcp add snaps \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact