# Stacks

It is recommended to use the [@stacks/connect](https://www.hiro.so/stacks-js) connection modal to get all popular Stacks wallets at once, including Asigna Extension.

{% hint style="info" %}
We have our own list of whitelisted apps. If you have recently launched or are preparing to launch a project on the Stacks blockchain, and you wish to apply to the listing on Asigna, please [contact us](https://asigna.gitbook.io/asigna/appendix/contact-us).&#x20;
{% endhint %}

Due to the `StacksProvider` conflict described in the [Stacks Connect library](https://github.com/hirosystems/connect/issues/325) issue, we decided not to override the standard provider in order to prevent any behaviour collisions with existing wallets, like Leather and Xverse.

### **Asigna Custom Provider:**

Asigna prepared a custom provider that can be passed to all methods from Stacks Connect. Application developers are able to integrate Asigna easily: `window.AsignaProvider`. \
\
This custom provider can be passed to methods like `doOpenAuth`, `doContractCall`, `doContractDeploy`, and `doSTXTransfer`.

### Recommendations:

It is recommended either to use custom providers for Xverse and Leather to avoid their internal collisions:

* Xverse custom provider: `window.XverseProviders.StacksProvider`
* Leather custom provider: `window.LeatherProvider`

A custom provider can be selected in the Connection window and then saved, for example, in local storage for further usage with other action methods.

{% hint style="info" %}
Follow the links to access the [library ](https://github.com/hirosystems/connect/)and the [package](https://www.npmjs.com/package/@stacks/connect). For the `micro-stacks.js` library, the custom provider feature [is not supported](https://github.com/fungible-systems/micro-stacks). We recommend migrating from `micro-stacks.js` to `stacks.js` to receive the latest Connect library updates.
{% endhint %}
