Files
metamask-integration/chain138-snap/PUSH_AND_PUBLISH.md
2026-03-02 12:14:14 -08:00

2.1 KiB

Push to GitHub and publish to npm

The Snap repo is https://github.com/bis-innovations/chain138-snap.

1. Push to GitHub

If this repo is used as a subtree (e.g. inside a parent monorepo as chain138-snap/), push from the parent repo root:

# One-time: add the Snap repo as a remote (if not already added)
git remote add chain138-snap https://github.com/bis-innovations/chain138-snap.git

# After making changes under chain138-snap/, commit then:
git add chain138-snap/
git commit -m "your message"
git subtree push --prefix=chain138-snap chain138-snap main

Use the remote name and branch that match your setup (e.g. chain138-snap, main).

2. Publish Snap package to npm

From the chain138-snap monorepo root:

# 0. (Recommended) Run thorough pre-publish testing
# See docs/PRE_PUBLISH_TESTING.md — build, logos/images, all RPC methods, companion site, Send page, production-like test.

# 1. Build (updates manifest shasum)
pnpm run build

# 2. (Optional) Use token from .env for publish (2FA bypass)
# Add NPM_ACCESS_TOKEN to .env (see .env.example). Use a Granular Access Token with
# "Publish" and "Bypass 2FA for publish" at https://www.npmjs.com/settings/~/tokens

# 3. Publish (uses NPM_ACCESS_TOKEN from .env if set)
# Run from the chain138-snap monorepo root:
pnpm run publish:snap
# Or manually: cd packages/snap && npm login && npm publish --access public

Production Snap ID will be npm:chain138-snap. After publish, the package will appear at https://www.npmjs.com/package/chain138-snap.

3. Submit for allowlist

After npm publish, fill the MetaMask Snaps Directory Information form with:

See ALLOWLIST_SOURCE_AND_COMPLIANCE_CHECKLIST.md for prerequisites.