https://github.com/metamask/template-snap-monorepo
https://github.com/metamask/template-snap-monorepo
Last synced: 12 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/metamask/template-snap-monorepo
- Owner: MetaMask
- License: apache-2.0
- Created: 2022-04-19T12:37:41.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2025-06-19T06:51:03.000Z (12 months ago)
- Last Synced: 2025-06-23T00:46:10.368Z (12 months ago)
- Language: TypeScript
- Size: 2.94 MB
- Stars: 123
- Watchers: 57
- Forks: 91
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE.APACHE2
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# @metamask/template-snap-monorepo
This repository demonstrates how to develop a snap with TypeScript. For detailed
instructions, see [the MetaMask documentation](https://docs.metamask.io/guide/snaps.html#serving-a-snap-to-your-local-environment).
MetaMask Snaps is a system that allows anyone to safely expand the capabilities
of MetaMask. A _snap_ is a program that we run in an isolated environment that
can customize the wallet experience.
## Snaps is pre-release software
To interact with (your) Snaps, you will need to install [MetaMask Flask](https://metamask.io/flask/),
a canary distribution for developers that provides access to upcoming features.
## Getting Started
Clone the template-snap repository [using this template](https://github.com/MetaMask/template-snap-monorepo/generate)
and set up the development environment:
```shell
yarn install && yarn start
```
## Cloning
This repository contains GitHub Actions that you may find useful, see
`.github/workflows` and [Releasing & Publishing](https://github.com/MetaMask/template-snap-monorepo/edit/main/README.md#releasing--publishing)
below for more information.
If you clone or create this repository outside the MetaMask GitHub organization,
you probably want to run `./scripts/cleanup.sh` to remove some files that will
not work properly outside the MetaMask GitHub organization.
If you don't wish to use any of the existing GitHub actions in this repository,
simply delete the `.github/workflows` directory.
## Contributing
### Testing and Linting
Run `yarn test` to run the tests once.
Run `yarn lint` to run the linter, or run `yarn lint:fix` to run the linter and
fix any automatically fixable issues.
### Using NPM packages with scripts
Scripts are disabled by default for security reasons. If you need to use NPM
packages with scripts, you can run `yarn allow-scripts auto`, and enable the
script in the `lavamoat.allowScripts` section of `package.json`.
See the documentation for [@lavamoat/allow-scripts](https://github.com/LavaMoat/LavaMoat/tree/main/packages/allow-scripts)
for more information.