# @metamask/permission-controller

> Mediates access to JSON-RPC methods, used to interact with pieces of the MetaMask stack, via middleware for json-rpc-engine

Latest version **14.0.0** (published 2026-09-09) · MIT license · 0 weekly downloads

## Install

```sh
npm install @metamask/permission-controller
pnpm add @metamask/permission-controller
yarn add @metamask/permission-controller
bun add @metamask/permission-controller
```

## Health

**Score 65/100 (B)** — status: active.

Positive: esm support; no vulnerabilities; has provenance; recently updated; high maintenance score.

Warnings: low downloads; no types.

## Facts

| | |
|---|---|
| Version | 14.0.0 |
| Published | 2026-09-09 |
| First published | 2022-11-22 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM |
| Node | ^22.14.0 \|\| ^24 |
| Dependencies | 11 |
| Unpacked size | 489.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 413 |
| Maintainers | frederikbolding, metamaskbot, gudahtt, mrten, mcmire, naugtur |
| Keywords | Ethereum, MetaMask |

## Links

- npm: https://www.npmjs.com/package/@metamask/permission-controller
- Repository: https://github.com/MetaMask/core
- Homepage: https://github.com/MetaMask/core/tree/main/packages/permission-controller#readme
- Issues: https://github.com/MetaMask/core/issues
- npm.io page: https://npm.io/package/@metamask/permission-controller

## Dependencies (11)

- [immer](https://npm.io/package/immer.md) ^9.0.6
- [nanoid](https://npm.io/package/nanoid.md) ^3.3.8
- [@metamask/utils](https://npm.io/package/@metamask/utils.md) ^11.12.0
- [deep-freeze-strict](https://npm.io/package/deep-freeze-strict.md) ^1.1.1
- [@metamask/messenger](https://npm.io/package/@metamask/messenger.md) ^3.0.0
- [@metamask/rpc-errors](https://npm.io/package/@metamask/rpc-errors.md) ^7.0.2
- [@metamask/base-controller](https://npm.io/package/@metamask/base-controller.md) ^10.0.0
- [@metamask/json-rpc-engine](https://npm.io/package/@metamask/json-rpc-engine.md) ^11.0.0
- [@types/deep-freeze-strict](https://npm.io/package/@types/deep-freeze-strict.md) ^1.1.0
- [@metamask/controller-utils](https://npm.io/package/@metamask/controller-utils.md) ^13.0.0
- [@metamask/approval-controller](https://npm.io/package/@metamask/approval-controller.md) ^10.0.0

## Recent versions

- 14.0.0 (latest) — 2026-09-09
- 13.1.1 — 2026-05-11
- 13.1.0 — 2026-05-06
- 13.0.0 — 2026-05-01
- 12.3.0 — 2026-03-26
- 12.2.1 — 2026-03-17
- 12.2.0 — 2026-01-06
- 12.1.1 — 2025-11-20
- 12.1.0 — 2025-10-28
- 12.0.0 — 2025-10-27
- 11.1.1 — 2025-10-24
- 11.1.0 — 2025-10-09
- 11.0.6 — 2025-02-11
- 11.0.5 — 2025-01-13
- 11.0.4 — 2024-12-03
- … 30 more at https://npm.io/package/@metamask/permission-controller/versions

## README

# `@metamask/permission-controller`

Mediates access to JSON-RPC methods, used to interact with pieces of the MetaMask stack, via middleware for `@metamask/json-rpc-engine`.

## Installation

`yarn add @metamask/permission-controller`

or

`npm install @metamask/permission-controller`

## Understanding

Please read the [Architecture][./architecture.md] document for more on how PermissionController works and how to use it.

## Contributing

This package is part of a monorepo. Instructions for contributing can be found in the [monorepo README](https://github.com/MetaMask/core#readme).

---
_Source: https://npm.io/package/@metamask/permission-controller · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
