Vultisig (Vulticonnect) first-class integration
gomesalexandre opened this issue · 0 comments
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:
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()callingeth_getAccounts/eth_requestAccountsand similar methods for other chains (i.e all other chains currently useget_accounts/request_accountsethGetAddressand similar methods for other chainsethSignMessage/ethSendTx/ethSignTxand similar methods for other chains (note all other chains currently usesend_transaction)getPublicKeysfor 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
