Vultisig Extension Integration Guide
Table of Contents
Introduction
Vultisig Extension is a Chrome extension that enhances the experience of interacting with decentralized finance (DeFi) applications. It offers a secure way for users to connect with decentralized applications without storing private keys in their browsers. Vultisig Extension introduces:
window.vultisig.ethereumfor Ethereum integrations (previouslywindow.vultisig).window.vultisig.thorchainandwindow.thorchainfor THORChain support.A MetaMask-compatible interface (
window.ethereum) to ensure seamless integration with existing DeFi applications.Support for multiple other chains including MayaChain, GaiaChain, Osmosis, Kujira, DyDx, BitcoinCash, Dash, DogeCoin, LiteCoin, and Bitcoin.
Supported Chains
Vultisig Extension currently supports the following chains:
Bitcoin
0x1f96
BitcoinCash
0x2710
Dash
Dash_dash
DogeCoin
0x7d0
DyDx
dydx-1
Ethereum
0x1
GaiaChain
cosmoshub-4
Kujira
kaiyo-1
LiteCoin
Litecoin_litecoin
MayaChain
MayaChain-1
Osmosis
osmosis-1
Polkadot
Polkadot_polkadot
Ripple
Ripple_ripple
Solana
Solana_mainnet-beta
THORChain
Thorchain_thorchain
Zcash
Zcash_zcash
How Vultisig Extension Works
Private Key Security: Vultisig Extension does not store private keys. Instead, transactions are converted to QR codes that users can scan and sign using VultiSig peer devices.
Compatibility: The extension provides:
window.ethereumfor MetaMask-compatible Ethereum integration.window.vultisig.ethereumfor Vultisig-Extension-enhanced Ethereum features.window.vultisig.thorchainandwindow.thorchainfor THORChain functionality.Additional chain support for other chains using
window.vultisig.chainandwindow.chain.
Supported Methods
Ethereum (window.vultisig.ethereum)
window.vultisig.ethereum)Account Management:
eth_accountseth_requestAccounts
Chain Management:
eth_chainIdwallet_addEthereumChainwallet_switchEthereumChain
Transaction Management:
eth_sendTransactioneth_getTransactionByHasheth_estimateGas
Other Methods:
eth_blockNumbereth_calleth_gasPriceeth_getBalanceeth_getBlockByNumbereth_getCodeeth_getTransactionCounteth_getTransactionReceipteth_maxPriorityFeePerGaspersonal_sign
THORChain (window.vultisig.thorchain and window.thorchain)
window.vultisig.thorchain and window.thorchain)Account Management:
request_accountsget_accounts
Transaction Management:
send_transactiondeposit_transactionget_transaction_by_hash
Solana (window.vultisig.solana and window.solana)
window.vultisig.solana and window.solana)Account Management:
request_accountsget_accounts
Transaction Management:
send_transactionget_transaction_by_hash
Cosmos-Based Chains (DyDx, GaiaChain, Kujira, Osmosis)
Account Management:
request_accountsget_accountschain_id
Chain Management:
wallet_add_chainwallet_switch_chain
Transaction Management:
send_transactionget_transaction_by_hash
Notes: Accessing a specific Cosmos-based chain (such as Kujira or Osmosis) requires calling
chain_idto retrieve the active chain's ID or usingwallet_add_chainandwallet_switch_chainto add or switch to the desired chain.
Other Chains (window.vultisig[chain] )
window.vultisig[chain] )Account Management:
request_accountsget_accounts
Transaction Management:
send_transactionget_transaction_by_hash
Supported Chains
The following chains are fully supported through their respective interfaces:
Bitcoin
BitcoinCash
Dash
DogeCoin
LiteCoin
MayaChain
Steps to Integrate with Vultisig Extension
1. Detect Vultisig Extension Support
2. Connecting to Vultisig Extension
Ethereum
Other Supported Chains
Replace chain with the desired chain identifier such as bitcoin, bitcoincash, cosmos, dash, dogecoin, litecoin, maya, solana, thorchain, etc.
Each chain uses a unified interface accessible via window.vultisig?.[chain] and window[chain] for seamless interaction across different blockchain networks.
3. Connected Accounts
To get connected accounts to the current dapp, use eth_accounts for EVM chains and get_accounts for other Vultisig Extension supported chains.
Ethereum
Other Supported Chains
4. Managing Active Chain
Ethereum
To get the current active chain ID of Vultisig Extension:
To switch to a desired Ethereum chain:
Cosmos-Based Chains
To get the current chain ID:
To switch to a desired Cosmos chain:
Note
Since other providers do not have different active chains, there is no need to switch chains for them. Therefore, the methods wallet_switch_chain and wallet_switchEthereumChain are not supported for chains other than Cosmos-based and Ethereum.
5. Handling Transactions
Transaction Details Structure
The txDetails object used in the transaction methods has the following structure:
from: The sender's Ethereum or chain-specific wallet address,
to: The receiver's wallet address.
data: Arbitrary data that can be included with the transaction (e.g., for contract interactions).
value: The amount to transfer, represented in hexadecimal format (e.g., "0x1" for 1 wei).
Example:
Ethereum
Other Supported Chains
THORChain
In addition to send transactions, THORChain supports deposit transactions for operations such as bond, unbond, etc.
Example of non-native tokens of THORChain and other Cosmos chains :
6. Custom Message Signing
Ethereum
Vultisig Extension currently supports the personal_sign method.
7. Querying Transactions
Ethereum
Retrieve Ethereum transaction details with eth_getTransactionByHash.
Other Supported Chains
Retrieve transaction details of other Vultisig Extension supported chains using get_transaction_by_hash.
8. Event Handling
Vultisig Extension supports the CONNECT and DISCONNECT events for all supported chains.
9. Get Vault
Vultisig Extension provides a function to get vault properties.
10. Detailed Implementation Examples
Transaction Object Structure
Ethereum Account Management Examples
Ethereum Gas Management Examples
Block Information Examples
Contract Interaction Examples
Error Handling
All methods can throw errors with the following structure:
Common error codes include:
4001: User rejected the request
4100: Unauthorized
4200: Unsupported method
4900: Disconnected
4901: Chain disconnected
Summary
Vultisig Extension ensures secure and multi-chain integration with DeFi applications, providing seamless support across popular chains. Its adherence to EIP-1193 guarantees compatibility with existing applications while delivering a secure and user-friendly experience.
Last updated
Was this helpful?
