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.
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.
- Read the contributing guide.
- Read the code of conduct.
- 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.
Below you can find a list of the foundational platform SDK packages included in this repository.
package | npm | issues | api reference |
---|---|---|---|
@web5/common | coming soon | ||
@web5/credentials | |||
@web5/crypto | |||
@web5/crypto-aws-kms | |||
@web5/dids |
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.
package | npm | issues | api reference |
---|---|---|---|
@web5/agent | coming soon | ||
@web5/api | |||
@web5/identity-agent | coming soon | ||
@web5/proxy-agent | coming soon | ||
@web5/user-agent | coming soon |
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.
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
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:
- node
- pnpm
You can check what has been installed by running hermit status
.
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:
Remember, contributing is not just about code; it's about building together. Join us in shaping the future of the Web!
You may need to update the web5-spec
submodule after pulling.
git pull
git submodule update
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
Resource | Description |
---|---|
CODEOWNERS | Outlines the project lead(s) |
CODE OF CONDUCT | Expected behavior for project contributors, promoting a welcoming environment |
CONTRIBUTING | Developer guide to build, test, run, access CI, chat, discuss, file issues |
GOVERNANCE | Project governance |
LICENSE | Apache License, Version 2.0 |