1. Overview
  2. Contribution Guide

Overview

How can I contribute to web3-onboard?

Reporting Bugs

Before creating an issue for a bug, please do a search through the Web3 Onboard issues to make sure that one has not already been created. You may find that someone else has run in to that issue and there may be a fix that has been released in a newer update.

If an issue does not exist for the bug that you want to report, go ahead and create an issue, making sure to add as much detail as possible and following the issue template instructions.

Once an issue has been created, one of the Web3 Onboard maintainers will take a look and will respond typically within a few days. The initial response will usually just acknowledge the issue and will indicate what will happen next.

Pull Requests

If there is a feature or change that you would like to see in Web3 Onboard, you can fork the repo and make a pull request to have the changes merged in to the main repo and released as part of the official packages.

Once a PR is created, one of the Web3 Onboard maintainers will acknowledge the PR and add it to our sprint planning to be reviewed as soon as possible.

Package Versioning

After making changes within a web3-onboard package you will want to bump the version of the specific package. For example if you were to add a new injected wallet to the injected package you will need to bump the version of the injected package within that module's package.json.

We use both semantic and alpha versioning for publishing and testing packages prior to official release. This means if you do not see an -alpha.x tag on the version of the package you made changes in you will need to not only bump the version but also add an alpha flag followed by an alpha version number starting at 1 (ex. -alpha.1).

Example : Adding a new injected wallet to the injected package - Injected Package.json changes : "version": "2.2.4", --> "version": "2.3.0-alpha.1",

Example 2 : Bug fix within the core package - Core package.json changes: "version": "2.9.1-alpha.1", --> "version": "2.9.1-alpha.2",

How can I get a new wallet added?

Web3 Onboard does not require a wallet to be a part of the main codebase to work, so a wallet module can be created and used for your project without needing anything to happen within the Web3Onboard codebase. If you would like the wallet to be part of the official Web3 Onboard packages and repo, then create a pull request, and make sure to add any documentation updates by creating a docs pull request.

If the wallet you are adding is an “injected” wallet (browser extension, mobile dapp browser wallet), you can add a wallet to the injected wallets module. See here for an example of an injected wallets pull request. You should also add the wallet to the natively supported injected wallets list.

Otherwise if the wallet you are adding requires adding dependencies and initialization (SDK), then you will need to create a new package in the Web3 Onboard monorepo. See here for an example of a pull request.

If you cannot write the code yourself to add a new wallet, then go ahead and create a feature request issue which may be considered by the maintainers or someone else in the community.

Documentation contributions

In order to contribute to the docs, you'll have to create a PR on the develop branch. If you contribute code, you should definitely document it appropriately. We highly encourage the community to improve web3-onboard docs, if you have any questions don't hesitate to reach out.

Feedback

Jump in to our discord server to provide any feedback you feel is worth sharing. Could the docs be improved? Did you have trouble integrating? Feature requests etc.

Support

For general questions about how to use Web3 Onboard you can first check out our docs to see if there is an answer there, or you can head to our Discord for support from the Blocknative team