Home

Awesome

Web5 JS Monorepo

Coverage Chat OpenSSF Scorecard

This monorepo houses the core components of the Web5 platform implemented in TypeScript/JavaScript. It features libraries for building applications with decentralized identifiers (DIDs), verifiable credentials (VCs), and decentralized web nodes (DWNs). The packages were designed for modern development runtimes, including Node.js, web browsers, and React Native.

πŸŽ‰ Hacktoberfest 2024 πŸŽ‰

web5-js is a participating project in Hacktoberfest 2024! We’re so excited for your contributions, and have created a wide variety of issues so that anyone can contribute. Whether you're a seasoned developer or a first-time open source contributor, there's something for everyone.

To get started:

  1. Read the contributing guide.
  2. Read the code of conduct.
  3. Choose a task from this project's Hacktoberfest issues in our Project Hubs for our protocol builder here and general tasks here and follow the instructions. Each issue has the 🏷️ hacktoberfest label.

Have questions? Connecting with us in our Discord community in the #hacktoberfest project channel.


Foundational Packages

Below you can find a list of the foundational platform SDK packages included in this repository.

packagenpmissuesapi reference
@web5/commonNPM PackageOpen Issuescoming soon <!--[![API Reference][common-docs-badge]][common-docs-link]-->
@web5/credentialsNPM PackageOpen IssuesAPI Reference
@web5/cryptoNPM PackageOpen IssuesAPI Reference
@web5/crypto-aws-kmsNPM PackageOpen IssuesAPI Reference
@web5/didsNPM PackageOpen IssuesAPI Reference

Decentralized Web Packages

Web5 decentralized web applications are built using decentralized identifiers (DIDs), verifiable credentials (VCs), and decentralized web node (DWN) datastores. This repository includes the following packages designed to make building Web5 apps as simple as possible.

packagenpmissuesapi reference
@web5/agentNPM PackageOpen Issuescoming soon <!--[![API Reference][agent-docs-badge]][agent-docs-link]-->
@web5/apiNPM PackageOpen IssuesAPI Reference
@web5/identity-agentNPM PackageOpen Issuescoming soon <!--[![API Reference][identity-agent-docs-badge]][identity-agent-docs-link]-->
@web5/proxy-agentNPM PackageOpen Issuescoming soon <!--[![API Reference][proxy-agent-docs-badge]][proxy-agent-docs-link]-->
@web5/user-agentNPM PackageOpen Issuescoming soon <!--[![API Reference][user-agent-docs-badge]][user-agent-docs-link]-->

Getting Started

To start developing applications and services with the Web5 JS SDK, the following steps will guide you through setting up your local development environment.

For detailed documentation on usage refer to the API reference documentation. Additionally, comprehensive guides can be found at the TBD Developer site to enhance your understanding of the underlying concepts and how to implement them effectively.

Cloning

This repository uses git submodules. To clone this repo with submodules:

git clone --recurse-submodules git@github.com:TBD54566975/web5-js.git

Or to add submodules after cloning:

git submodule update --init

We recommend running the command below once which will configure your environment to only checkout the test-vectors directory under the web5-spec git submodule directory.

git -C web5-spec sparse-checkout set test-vectors

Hermit

This project uses Hermit to manage development tooling. See this guide to learn how to download the Hermit open source build and activate it for the project.

By default, the following packages installed by Hermit:

You can check what has been installed by running hermit status.

Contributing

We welcome you to join our open source community. Whether you're new to open source or a seasoned contributor, there's a place for you here. From coding to documentation, every contribution matters. Check out our contribution guide for ways to get started.

For help, discussion about best practices, or to chat with others building on Web5 join our Discord Server:

discord-badge

Remember, contributing is not just about code; it's about building together. Join us in shaping the future of the Web!

Working with the web5-spec submodule

Pulling

You may need to update the web5-spec submodule after pulling.

git pull
git submodule update

Pushing

If you have made changes to the web5-spec submodule, you should push your changes to the web5-spec remote as well as pushing changes to web5-js.

cd web5-spec
git push
cd ..
git push

Project Resources

ResourceDescription
CODEOWNERSOutlines the project lead(s)
CODE OF CONDUCTExpected behavior for project contributors, promoting a welcoming environment
CONTRIBUTINGDeveloper guide to build, test, run, access CI, chat, discuss, file issues
GOVERNANCEProject governance
LICENSEApache License, Version 2.0