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.
@stacks/connectConnect web application to Stacks wallet browser extensions (separate repo).
@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.
@stacks/bnsLibrary for interacting with the BNS contract.@stacks/stackingLibrary for PoX stacking.
@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 and library references for the stacks.js packages are located at stacks.js.org.
To migrate your app from blockstack.js to Stacks.js follow the steps in the respective migration guide.
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!
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.