Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Initial integration docs #140

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

feat: Initial integration docs #140

wants to merge 1 commit into from

Conversation

gbarkhatov
Copy link
Contributor

Initial integration docs

Closes #16

@@ -5,6 +5,10 @@
</p>
<br/>

## Overview

The Babylon Wallet Connector provides a unified interface for integrating both Bitcoin (BTC) and Babylon (BBN) wallets into Babylon dApp. It supports both native wallet extensions and injectable mobile wallets.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"native wallet extensions" & "injectable mobile wallets" might be confusing for people outside of the company.
How about have a small section dedicate to explain what this really mean? and especially for the mobile injectable, give a small example with screenshot

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay


### Integration Through Tomo Connect SDK Lite

In addition to direct integration, wallets can also be integrated through [Tomo Connect SDK Lite](https://docs.tomo.inc/tomo-sdk/tomo-connect-sdk-lite).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO we shall put this section first as we would like to delegate this to tomo as much as possible. i.e encourage wallet to go through tomo. if it doesn't work out due to xyz reason, come to us

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed, we should note early on that this repository maintains few wallets natively integrated and maintained by the Babylon team and uses Tomo Connect to get access to more wallets. Wallet developers are encouraged to integrate with Tomo Connect to be enabled on the babylon staking dapp

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay


This guide explains how to integrate wallets with the Babylon staking dApp. The dApp supports both Bitcoin (BTC) and Babylon (BBN) wallets through a unified interface.

### Supported Wallet Types
Copy link
Collaborator

@jrwbabylonlab jrwbabylonlab Dec 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's not put everything under a single README.
We can start with the high-level file structure first then gradually define the content.
Something on top of my head:

  • README.md: table of content of below points from "doc" directly. The rest can just be local dev instruction on how to spin up playbook, how to run tests etc.
  • doc
    1. bitcoin: instruction on how to get listed as part of the bitcoin wallets
    2. babylon: instruction on how to get listed as part of the BBN wallets
    3. mobile: instruction on how to work with mobile injectable where both BTC & BBN need to be implemented
    4. General guideline: This page highlights the rules wallets should follow before and after integration. For example, no breaking change, provide POC for incident etc. We can also put this as first line of the main README.md
    5. FAQs: A list of common questions that were asked by wallets

Note: no need to go detail into each section at this stage. I'm just highlighting we shall start with skeleton on the structure and areas we want to cover. The actual content can be added later on.

thoughts on the structure? @totraev @jeremy-babylonlabs @vitsalis

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not a fan of splitting docs into too many documents. One or two docs should do. Regarding the structure, my recommendation:

  • README.md: Purpose of this repository. This is a codebase hosts the wallet connection component of the Babylon staking dashboard, which involves the connection of a Bitcoin wallet and a Babylon chain wallet. The repository contains (1) the implementation of our wallet specification, (2) natively integrated browser extension wallets implementing this spec, and (3) a connection with Tomo Connect for further wallet connections.
    • If we want to have FAQs, we can have them on the README.
    • We have a section for wallet integration, in which we mention that if someone is interested in getting integrated as a wallet, they should follow the wallet integration doc.
  • docs/wallet-integration.md: Document listing the wallet interfaces for bitcoin and babylon chain and defining the two options of wallets: (1) browser extensions should create a PR (we note that we will not be accepting PRs and people should go to Tomo connect) and (2) mobile wallets should implement these interfaces and inject them on specific places.

Copy link
Contributor Author

@gbarkhatov gbarkhatov Dec 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest to go with @vitsalis approach

@totraev @jrwbabylonlab what do you think?

@@ -5,6 +5,10 @@
</p>
<br/>

## Overview

The Babylon Wallet Connector provides a unified interface for integrating both Bitcoin (BTC) and Babylon (BBN) wallets into Babylon dApp. It supports both native wallet extensions and injectable mobile wallets.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lines should be wrapped at 80 characters on .md files

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, will do


1. Native Wallets

- Must submit a PR to add the implementation
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's not guide wallets to submit PRs here. We are the owners of this repository and we will be the ones adding any new wallets.

Copy link
Contributor Author

@gbarkhatov gbarkhatov Dec 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's not guide wallets to submit PRs here. We are the owners of this repository and we will be the ones adding any new wallets.

Before that they made an initial PR because these wallets know how the wallet is build. Whereas we do the additons.
For example - Keystone is completely all-in manual, BitGet uses inner internal signPsbt method, etc.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the mention of Tomo above in the discussion, will remove it from here

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can sync with wallets on this offline. We will heavily avoid integrating wallets in here unless very much required. If we have sentences instructing people to submit PRs, people might be confused that we are accepting PRs by random people. For the few wallets we integrate, we can sync offline for them to submit a PoC to help us take over

@gbarkhatov
Copy link
Contributor Author

Docs should have some sort of sentence about backwards compatibility and not introducing breaking changes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Docs: Update wallet docs
4 participants