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

Vultisig (Vulticonnect) first-class integration #709

Open
gomesalexandre opened this issue Jan 31, 2025 · 0 comments
Open

Vultisig (Vulticonnect) first-class integration #709

gomesalexandre opened this issue Jan 31, 2025 · 0 comments

Comments

@gomesalexandre
Copy link
Contributor

gomesalexandre commented Jan 31, 2025

Overview

This issue is for fully integrating Vultisig through Walletconnect.

Its description serves as a reference of sorts for work to follow, so engineers can pick up the work and start from here.

References and additional details

Introduction

First, read this guide for reference, though note it's currently WIP. Expect it to change by the time this is picked up.

https://github.com/vultisig/vulticonnect/blob/main/docs/integration-guide.md

For EVM chains, things actually work out-of-the-box with MIPD thanks to mipd announcement:

Image

For other chains, things are not so well documented yet, once again, expect things to change quickly and be more documented by the time you pick this.

Take e.g THOR for reference: https://github.com/vultisig/vulticonnect/blob/e31f3383f2e6743da5d03e34810f7e2a8cbe5fc0/src/content/index.ts#L734-L751

Both request message and response are basically typed as any, but the core logic should be there: working with all chains, including non-EVM chains is all about calling window.vultisig.request() with the right payload. However, not sure what the payload should be for said chains. There is some kind of documentation for Cosmos SDK (including THOR) chains, and a signPSBT method present but that's about it.

The actual implementation

Regardless of how things look like by the time you pick this, assume a first-class implementation is going to look roughly like any other multichain implementation like hdwallet-phantom:

  • pairDevice() calling eth_getAccounts / eth_requestAccounts and similar methods for other chains (i.e all other chains currently use get_accounts / request_accounts
  • ethGetAddress and similar methods for other chains
  • ethSignMessage/ ethSendTx / ethSignTx and similar methods for other chains (note all other chains currently use send_transaction)
  • getPublicKeys for UTXO chains

This should really follow the standard hdwallet implementation flow, and window.vultisig provider should be used for all of these.

Acceptance Criteria

  • Can pair and derive accounts/addresses for all Vulticonnect-supported chains
  • Can sign and broadcast transaction for all Vulticonnect-supported chains, initiating the keysign ceremony in Vulticonnect

Need By Date

No response

Screenshots/Mockups

No response

Estimated effort

No response

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

No branches or pull requests

1 participant