Adding transaction to fireblocks sandbox via WalletConnect with Solana

Hello all

I am using web3modal from walletconnect to allow users to connect their solana wallets in our UI, using it as per these docs: Installation | WalletConnect Docs

The issue I am facing is that I cant get the transaction pushed in to fireblocks sandbox via my walletconnect dapp connection, the flow works fine with phantom wallet so I think the implementation is fine as far as web3modal/walletconnect goes.

When I try to use the ⁠ provider.signAndSendTransaction ⁠ method on the walletconnect connection I get an error message saying that ⁠ solana_signAndSendTransaction ⁠ is missing or invalid on the provider, this suggests that there may be another method on the walletconnect provider that can be used to push the transaction into fireblocks.

I tried using ⁠ provider.signTransaction ⁠ and ⁠ provider.sendTransaction ⁠ and they had no error message immediately but nothing happened in fireblocks UI and eventually the requests expired/timed out after a couple of minutes.

The transaction I am trying to push through is a transaction I have constructed using @solana/web3.js and it contains multiple instructions and 2 total signatures, by the time I am trying to push the transaction into fireblocks it has one signature on it (which is the solana stake account creation signature), the second required signature is to be provided by fireblocks once it gets pushed through

I came across Wallet Link this which looks to work in conjuction with WalletConnect and might be what I need to interact more directly with fireblocks, can anyone confirm this?

I have also read about raw signing via the api and am under the impression that the WalletConnect connection is abstracting this away and essentially using the api on the users behalf authenticated as them. Please let me know if this is not the case.

Hi @chrism, It looks like Wallet Link is what you are looking for to integrate SOL wallets into your UI. This will allow users to open the WC modal, scan the QR code, and connect the vault account from Fireblocks.

Regarding your last question, when a user scans a WC modal QR code provided by the dApp. This QR code contains a URI that represents the connection session to be established between the dApp and the wallet. Passing this URI onto Fireblocks using the API allows the connection to the SOL wallet to be established in your Vault account.

Thanks @Mohammed , to clarify I am able to connect to the users fireblocks via out-of-the-box WalletConnect without using any additional fireblocks sdk or library, it just seems that the usual walletconnect methods for signing/submitting transactions don’t do anything / aren’t implemented entirely.

Can you confirm is it is expected behaviour that the WalletConnect connection is not able to push transactions into the connected fireblocks account and that WalletLink is required here? That is to say that my app will have to specially handle users connected to WalletConnect>Fireblocks seperately to WalletConnect>anyOtherWallet:

  1. when connecting with fireblocks, WalletLink is required
  2. when connecting with any other wallet (eg. phantom), WalletConnect can be used as per usual

Apologies for delay in response, wallet link it self supports wallet connect and is built on top of it. Our docs state The Fireblocks Wallet Link allows your users to connect their Fireblocks wallet addresses directly to Web3 applications (dApps), without your users needing to use their own wallet or any other application. This enables you to offer your users one-stop shopping for anything related to crypto and Web3.

You would bring your own Wallet connect URI and allow users to connect to your dapp.