@gobob/btcsnap
TypeScript icon, indicating that this package has built-in type declarations

2.0.8 • Public • Published

MetaMask Snaps Introduction

Snaps is a system that allows developers to safely build and expand the capabilities of MetaMask. It is a program that is run in an isolated environment with a limited set of capabilities, that can customize and modify MetaMask's wallet experience for end users. For example, a snap can add new APIs to MetaMask thus adding support for different blockchains or modify existing functionalities using internal APIs.

Additional information can be found here.

Usage

  1. Enable btcsnap in your dapp
const result: boolean = await ethereum.request({
  method: 'wallet_requestSnaps',
  params: {
    'npm:@gobob/btcsnap': {},
  },
});
  1. Get an extended public key
const response = await ethereum.request({
  method: 'wallet_invokeSnap',
  params: {
    snapId: 'npm:@gobob/btcsnap',
    request: {
      method: 'btc_getPublicExtendedKey',
      params: {
        network: 'test',
        scriptType: 'P2WPKH',
      },
    },
  },
});
  1. Sign Psbt
const result: {txId: string; txHex: string} = await ethereum.request({
  method: 'wallet_invokeSnap',
  params: {
    snapId: 'npm:@gobob/btcsnap',
    request: {
      method: 'btc_signPsbt',
      params: {
        psbt: base64Psbt, // base64 string for the pbst,
        network: 'Main', // for testnet use "Test",
        scriptType: 'P2PKH', // "P2SH-P2WPKH" or "P2WPKH"
      },
    },
  },
});

Building

Build the snap and test it locally with the following command:

yarn rebuild

Testing

Use the following command to run tests:

yarn test

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
2.0.81latest

Version History

VersionDownloads (Last 7 Days)Published
2.0.81
2.0.70
2.0.60
2.0.50
2.0.40
2.0.30
0.0.10

Package Sidebar

Install

npm i @gobob/btcsnap

Weekly Downloads

1

Version

2.0.8

License

ISC

Unpacked Size

3.44 MB

Total Files

6

Last publish

Collaborators

  • daniel_simao
  • dominik0
  • tom-interlay
  • ns212