/stacks.js

JavaScript libraries for identity, auth, storage and transactions on the Stacks blockchain.

Primary LanguageTypeScriptMIT LicenseMIT

Stacks.js Test Action Badge Monorepo Version Label

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/connect Connect web application to Stacks wallet browser extensions (separate repo).

Stacks Primitives

  • @stacks/transactions Construct, decode transactions and work with Clarity smart contracts on the Stacks blockchain.
  • @stacks/wallet-sdk Library for building wallets, managing accounts, and handling keys for the Stacks blockchain.
  • @stacks/storage Store and fetch files with Gaia, the decentralized storage system.
  • @stacks/encryption Encryption functions used by stacks.js packages.
  • @stacks/auth Construct and decode authentication requests for Stacks apps.
  • @stacks/profile Functions for manipulating user profiles.
  • @stacks/network Network and API library for working with Stacks blockchain nodes.
  • @stacks/common Common utilities used by stacks.js packages.

Native Smart Contract Interaction

Others

  • @stacks/cli Command line interface to interact with auth, storage and Stacks transactions.
  • @stacks/keychain DEPRECATED: 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.

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)

  1. Clone this package.
  2. Run npm install to install dependencies
  3. Run npm run bootstrap to bootstrap project
  4. Run npm run build to build packages
  5. Run npm run test to 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 test show lerna success - @stacks/... for every package.