metamask

Use the MetaMask tools to request and interact with wallet capabilities from the MetaMask capability vendor.

6 stars

Best use case

metamask is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use the MetaMask tools to request and interact with wallet capabilities from the MetaMask capability vendor.

Teams using metamask should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/metamask/SKILL.md --create-dirs "https://raw.githubusercontent.com/MetaMask/ocap-kernel/main/packages/agentmask/openclaw-plugin-metamask/skills/metamask/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/metamask/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How metamask Compares

Feature / AgentmetamaskStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use the MetaMask tools to request and interact with wallet capabilities from the MetaMask capability vendor.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# MetaMask (ocap)

Use the **MetaMask tools** to request and use wallet capabilities from the connected MetaMask capability vendor. Do not use exec or other CLIs for these operations.

## Tools

- **metamask_obtain_vendor** - Obtain the capability vendor by redeeming an OCAP URL from the user. Must be called first unless the OCAP URL was pre-configured.
- **metamask_request_capability** - Request a capability from the vendor. Describe what you want in natural language (e.g., "I need to sign personal messages"). Returns the capability name and kref.
- **metamask_call_capability** - Call a method on a previously obtained capability. Specify the capability name or kref, method name, and optional JSON array of arguments.
- **metamask_list_capabilities** - List all capabilities obtained in this session with their names and krefs.

## Workflow

1. If not already connected, ask the user for their OCAP URL and call `metamask_obtain_vendor`. The user can find the URL in the MetaMask extension under the OCAP Kernel page (global menu) or in the offscreen console.
2. Ask the user what they want to do with their MetaMask wallet.
3. Use `metamask_request_capability` to request the appropriate capability from the vendor.
4. Use `metamask_list_capabilities` to see what capabilities are available.
5. Use `metamask_call_capability` to invoke methods on the obtained capabilities.

## Example: Signing a message

1. Obtain the vendor (if needed):

   - Ask the user: "Please provide your OCAP URL from the MetaMask extension."
   - User pastes: `ocap:abc123@12D3KooW...,/ip4/...`
   - `metamask_obtain_vendor` with url: the pasted URL

2. Request the signing capability:

   - `metamask_request_capability` with request: "I need to sign personal messages"
   - Returns: `PersonalMessageSigner` capability with a kref like `ko5`

3. Get available accounts:

   - `metamask_call_capability` with capability: "PersonalMessageSigner", method: "getAccounts"
   - Returns: list of addresses

4. Sign a message:
   - `metamask_call_capability` with capability: "PersonalMessageSigner", method: "signMessage", args: '["0xAddress...", "Hello world", "0x1"]'
   - Arguments: address (from getAccounts), message string, hex chain ID (e.g., "0x1" for mainnet)

## Rules

- If a tool returns "Not connected to a MetaMask wallet", ask the user for their OCAP URL and call `metamask_obtain_vendor`.
- Always ask the user what they want before requesting capabilities.
- Use only the MetaMask tools for interacting with the vendor.
- Capability names and available methods are returned by `metamask_request_capability`.
- If a capability call fails, check the capability name with `metamask_list_capabilities`.
- Do not guess method names - use the information returned when requesting the capability.

Related Skills

wallet

6
from MetaMask/ocap-kernel

Use the wallet tools for all balance, send, and sign operations. Supports both ETH and ERC-20 tokens. The away wallet operates autonomously after setup — the home device does not need to be online.

discovery

6
from MetaMask/ocap-kernel

Use the discovery tools to find and use services through a service matcher. Do not rely on prior knowledge of services, providers, or APIs.

update-changelogs

6
from MetaMask/ocap-kernel

Updates changelogs for all packages with consumer-facing changes.

push

6
from MetaMask/ocap-kernel

Pushes the current branch to the remote repository.

pr

6
from MetaMask/ocap-kernel

Creates a pull request for the current branch.

lint-build-test

6
from MetaMask/ocap-kernel

How to check code by linting, building, and testing.

glossary

6
from MetaMask/ocap-kernel

How to add entries to the glossary

evm-wallet-docker-e2e

6
from MetaMask/ocap-kernel

Run the evm-wallet Docker e2e tests (build, start stack, wait for healthy, test, diagnose failures).

create-package

6
from MetaMask/ocap-kernel

Create a new monorepo package using the create-package CLI

commit

6
from MetaMask/ocap-kernel

Optionally checks, then commits code to the current or a new feature branch.

code-review

6
from MetaMask/ocap-kernel

How to review code; a pull request, feature branch, local changes etc.

MetaMask Agent Wallet

3891
from openclaw/skills

Control a sandboxed MetaMask browser extension wallet for autonomous blockchain transactions. Features configurable permission guardrails including spend limits, chain allowlists, protocol restrictions, and approval thresholds. MetaMask-only (other wallets not supported).