Stacks.js

This repo is home to most of the Stacks.js packages, which provide the building blocks to work with the Stacks blockchain from JavaScript/TypeScript.
Connecting Wallets
@stacks/connectConnect web application to Stacks wallet browser extensions (separate repo).
Stacks Primitives
@stacks/transactionsConstruct, decode transactions and work with Clarity smart contracts on the Stacks blockchain.@stacks/wallet-sdkLibrary for building wallets, managing accounts, and handling keys for the Stacks blockchain.@stacks/storageStore and fetch files with Gaia, the decentralized storage system.@stacks/encryptionEncryption functions used by stacks.js packages.@stacks/authConstruct and decode authentication requests for Stacks apps.@stacks/profileFunctions for manipulating user profiles.@stacks/networkNetwork and API library for working with Stacks blockchain nodes.@stacks/commonCommon utilities used by stacks.js packages.
Native Smart Contract Interaction
@stacks/bnsLibrary for interacting with the BNS contract.@stacks/stackingLibrary for PoX stacking.
Others
@stacks/cliCommand line interface to interact with auth, storage and Stacks transactions.@stacks/keychainDEPRECATED: replaced by@stacks/wallet-sdk
See the respective README in each package directory for installation instructions and usage.
Documentation
Documentation and library references for the stacks.js packages are located at stacks.js.org.
Migrating from previous versions
To migrate your app from blockstack.js to Stacks.js follow the steps in the respective migration guide.
Bugs and feature requests
If you encounter a bug or have a feature request, we encourage you to follow the steps below:
- Search for existing issues: Before submitting a new issue, please search existing and closed issues to check if a similar problem or feature request has already been reported.
- Open a new issue: If it hasn't been addressed, please open a new issue. Choose the appropriate issue template and provide as much detail as possible, including steps to reproduce the bug or a clear description of the requested feature.
- Evaluation SLA: Our team reads and evaluates all the issues and pull requests. We are avaliable Monday to Friday and we make a best effort to respond within 7 business days.
Please do not use the issue tracker for personal support requests or to ask for the status of a transaction. You'll find help at the #support Discord channel.
Contributing & Development
Github issues marked help-wanted are great places to start. Please ask in a github issue or discord before embarking on larger issues that aren't labeled as help wanted or adding additional functionality so that we can make sure your contribution can be included!
Environment setup
To setup the development environment for this repository, follow these steps:
Prerequisites: NodeJS & npm are required (v18.x.x is currently recommended)
- Clone this package.
- Run
npm installto install dependencies - Run
npm run bootstrapto bootstrap project - Run
npm run buildto build packages - Run
npm run testto run tests
Some tests may contain logging of errors and warnings. This should not be confused with failing tests. Make sure the last lines of
npm run testshowlerna success - @stacks/...for every package.
Code of Conduct
Please read our Code of conduct since we expect project participants to adhere to it.
Community
Join our community and stay connected with the latest updates and discussions:
-
Join our Discord community chat to engage with other users, ask questions, and participate in discussions.
-
Visit hiro.so for updates and subcribing to the mailing list.
-
Follow Hiro on Twitter.