# Introduction

[Leather](https://leather.io/) empowers developers to build apps with the [Bitcoin](https://bitcoin.org/) and [Stacks](https://stacks.co/) blockchains, tapping into the multilayered Bitcoin economy.

Connect and interact with user wallets via [the Leather browser extension](https://leather.io/install) using our suite of simple JavaScript methods.

## Provider object

The Leather extension injects a global object that can be used to call its API.&#x20;

Look for the presence of `LeatherProvider` to see if the Leather is installed:

```typescript
if (window.LeatherProvider) // Leather is installed 🎉
```

This object implements the `.request` method standard from [Modern Wallet APIs proposal](https://github.com/stacksgov/sips/pull/166).&#x20;

Simply provide the method name and any necessary parameters, such as `sendTransfer` for [sending Bitcoin](https://leather.gitbook.io/developers/bitcoin-methods/sendtransfer):

```
const response = await window.LeatherProvider?.request("sendTransfer", {
  recipients: [
    {
      address: "tb1qkzvk9hr7uvas23hspvsgqfvyc8h4nngeqjqtnj",
      amount: "10000",
    }
  ]);
```

## Methods

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>getAddresses</strong></td><td>Request the Bitcoin addresses (Native SegWit and Taproot) and Stacks addresses for the active account of the user's wallet</td><td></td><td><a href="../methods/getaddresses">getaddresses</a></td><td><a href="https://2085786563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F41U87FfDFo2dIKYr0ZNX%2Fuploads%2FMFlMCuHAwNyrn9bW4KNO%2FgetAddresses.png?alt=media&#x26;token=11991e5c-5adf-49dc-898e-8a0224cf3491">getAddresses.png</a></td></tr><tr><td><strong>signMessage</strong></td><td>Request the signature of an arbitrary message with the first Bitcoin address (Native SegWit or Taproot) of an account</td><td></td><td><a href="../bitcoin-methods/signmessage">signmessage</a></td><td><a href="https://2085786563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F41U87FfDFo2dIKYr0ZNX%2Fuploads%2FtY8VNQc4NzdslVpLgWMn%2FsignMessage.png?alt=media&#x26;token=a0b0fc0c-4f1a-4d54-9e63-08f509009334">signMessage.png</a></td></tr><tr><td><strong>sendTransfer</strong></td><td></td><td>Request the signature and broadcast of a Bitcoin transaction</td><td><a href="../bitcoin-methods/sendtransfer">sendtransfer</a></td><td><a href="https://2085786563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F41U87FfDFo2dIKYr0ZNX%2Fuploads%2FPPFZeqqIalNolfOypyFq%2FsendTransfer.png?alt=media&#x26;token=c0d0c556-efe5-47d0-9359-b92a9e077c26">sendTransfer.png</a></td></tr><tr><td><strong>signPsbt</strong></td><td>Request the signature and broadcast of a Partially Signed Bitcoin Transaction (PSBT)</td><td></td><td><a href="../bitcoin-methods/signpsbt">signpsbt</a></td><td><a href="https://2085786563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F41U87FfDFo2dIKYr0ZNX%2Fuploads%2F6sTrJ5GKJtP4NFsGD3UP%2FSignPsbt.png?alt=media&#x26;token=b4c370e8-b034-4c80-a278-be0a2cc044ee">SignPsbt.png</a></td></tr><tr><td><strong>Stacks libraries</strong></td><td>Execute smart contracts and transfer assets on the Stacks blockchain</td><td></td><td><a href="../stacks-methods/stacks-libraries">stacks-libraries</a></td><td><a href="https://2085786563-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F41U87FfDFo2dIKYr0ZNX%2Fuploads%2FJU3exHMKzIExpvBszoRu%2FStacks%20Libraries.png?alt=media&#x26;token=d42e7e35-58bb-476a-a42c-f706f88d0ed1">Stacks Libraries.png</a></td></tr></tbody></table>
