Skip to content

feat: add unisat, bitget and binance web3 wallet bitcoin connector #4465

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

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

danielsimao
Copy link

@danielsimao danielsimao commented Jun 3, 2025

Description

Added a new UnisatConnector class to support Bitcoin wallet connectivity for Unisat, Bitget, and BinanceW3W wallets (all of these use the same wallet API).

NOTE: BinanceW3W injects window value inside binance web3 app browser.

Type of change

  • Chore (non-breaking change that addresses non-functional tasks, maintenance, or code quality improvements)
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Associated Issues

For Linear issues: Closes APKT-123 (replace with actual issue ID)
For GH issues: closes #456 (replace with actual issue number)

Showcase (Optional)

N/A - No UI changes. This is a backend connector implementation.
Demo recording: [Link to demo recording, if available]

Checklist

  • Code in this PR is covered by automated tests (Unit tests, E2E tests)
  • My changes generate no new warnings
  • I have reviewed my own code
  • I have filled out all required sections
  • I have tested my changes on the preview link
  • Approver of this PR confirms that the changes are tested on the preview link

Copy link

changeset-bot bot commented Jun 3, 2025

⚠️ No Changeset found

Latest commit: 61a0f9f

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link

vercel bot commented Jun 3, 2025

@danielsimao is attempting to deploy a commit to the Reown Team on Vercel.

A member of the Team first needs to authorize it.

@danielsimao danielsimao force-pushed the feat/add-unisat-wallet branch from b4e4cf3 to 36b4858 Compare June 4, 2025 16:01
Copy link

vercel bot commented Jun 4, 2025

Deployment failed with the following error:

The provided GitHub repository does not contain the requested branch or commit reference. Please ensure the repository is not empty.

@danielsimao danielsimao force-pushed the feat/add-unisat-wallet branch from 36b4858 to 20def01 Compare June 4, 2025 16:03
@danielsimao danielsimao changed the title feat: wip feat: add unisat and bitget bitcoin connector Jun 4, 2025
@danielsimao danielsimao changed the title feat: add unisat and bitget bitcoin connector feat: add unisat, bitget and binance web3 wallet bitcoin connector Jun 5, 2025
@enesozturk enesozturk requested a review from zoruka June 5, 2025 17:33
@danielsimao
Copy link
Author

Hey @enesozturk. Thank you so much for taking the time to helps us ship this. I apologize not not including the docs on the PR description

Unisat Docs: https://docs.unisat.io/dev/open-api-documentation/unisat-wallet
Unisat network reference: https://docs.unisat.io/dev/open-api-documentation/unisat-wallet#getnetwork
Bitget Docs: https://web3.bitget.com/en/docs/provider-api/btc.html#BTC
Binance web3 Wallet Docs: https://developers.binance.com/docs/binance-w3w/bitcoin-provider#provider-detection

@enesozturk
Copy link
Contributor

Thanks @danielsimao - lastly can you add unit tests for the new connector? We keen to merge this to ship on the next release. I'll follow up for the CI after we add tests

Copy link

vercel bot commented Jun 6, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
appkit-demo ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jun 6, 2025 8:30am
appkit-laboratory ✅ Ready (Inspect) Visit Preview Jun 6, 2025 8:30am

@danielsimao
Copy link
Author

danielsimao commented Jun 6, 2025

Thanks @danielsimao - lastly can you add unit tests for the new connector? We keen to merge this to ship on the next release. I'll follow up for the CI after we add tests

Added. Let me know if I missed any test case @enesozturk

@danielsimao danielsimao closed this Jun 6, 2025
@danielsimao danielsimao reopened this Jun 6, 2025
@danielsimao
Copy link
Author

danielsimao commented Jun 6, 2025

@enesozturk note that images are missing for these wallets. Also, testing binance web3 would require a preview deployment because I was not able to access/test it locally.

@danielsimao danielsimao requested a review from enesozturk June 6, 2025 14:09
@enesozturk
Copy link
Contributor

@danielsimao I've approved the previews so you can see on top. Here is for lab: https://appkit-laboratory-max1etm4j-reown-com.vercel.app/

@enesozturk
Copy link
Contributor

@danielsimao Testing wallets in the Bitcoin example: https://appkit-laboratory-max1etm4j-reown-com.vercel.app/library/bitcoin/

I've realized that these wallets are not listed as separate options. There is one "UniSat Wallet" option and it's connecting to what ever it picks (UniSat wallet or BitGet)

The wallets should be listed separately. Anyways tested wallets by enabling only one of them each time:

  • UniSat - sign message, switch network, sign message, refresh page + reconnection, all fine ✅
  • BitGet - sign message, switch network, sign message works fine - but there is an issue after page refresh that AppKit doesn't loaded ❌
  • Binance W3W - Is this have a Chrome Extension? How can I test this?

@danielsimao
Copy link
Author

danielsimao commented Jun 6, 2025

@danielsimao Testing wallets in the Bitcoin example: https://appkit-laboratory-max1etm4j-reown-com.vercel.app/library/bitcoin/

I've realized that these wallets are not listed as separate options. There is one "UniSat Wallet" option and it's connecting to what ever it picks (UniSat wallet or BitGet)

The wallets should be listed separately.

https://github.com/reown-com/appkit/pull/4465/files#diff-b7fafe0b3786d9f8ca6e73b0b8f7a3728ed3bc372b53ad8b9d0bd76ab610354cR123

This is how I added the wallets.

Anyways tested wallets by enabling only one of them each time:

  • UniSat - sign message, switch network, sign message, refresh page + reconnection, all fine ✅
  • BitGet - sign message, switch network, sign message works fine - but there is an issue after page refresh that AppKit doesn't loaded ❌
  • Binance W3W - Is this have a Chrome Extension? How can I test this?

Binance one you can access only through Binance App. They have a wallet inside it, which has a browser. Just like metamask now allows a browser in-app. I just tried and already noticed that it fails to switch chain (maybe it does not support it)

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.

Empty modal
2 participants