I am supportive of your suggestion for utilising WalletConnect.
I’ve read through the reasoning presented by both sides and I think this is the way to go. I don’t mind if this means more time to implement it; if it needs to be done it needs to be done.
Thank you for your support, I’ll start with an in-depth research of the WalletConnect protocol and after that see what dependencies are required for the integration.
Its workflow hasn’t been validated for marketing/analytics needs sought, so I wouldn’t say it’s the way to go just yet. There may be simpler paths available, though I’m sure such integration may be useful nonetheless for other reasons than marketing.
Updating the ZNN Dart SDK to work on Web (harder to do given the ffi dependency)
Syrius desktop deep linking / copy-paste WC link / upload QR with detection / scan QR using screen recorder (check out this wallet to see how WC should work - it only lacks basic copy-paste support)
Would deeplinks work if the wallet is closed/unauthenticated?
Is the connection made with the entire wallet (meaning all of its addresses?), or is it on an address basis?
If by address, can multiple connections be made from the web for each address?
I assume a new view will be added in syrius desktop to confirm/reject the transaction. Upon confirmation.
Can the web button deeplink into the syrius wallet to enable the connection in the first place, bypassing the need for a WalletConnect modal? Otherwise I guess users need to go in the “Desktop” section of the modal and find syrius? If yes, how do we get listed here:
Yes, it will literally open the wallet (if it’s unauthenticated, you’ll need to unlock it first). Even better, it will also work if Syrius is not installed yet: check how Infinity wallet works (clicking on Go to wallet will open https://infinitywallet.io/wc/?uri where you can hook your tracking analytics).
Just one address per connection (Syrius works this way).
Yes
Yes and I also see that v2 has the auto-signing feature.
How does the connection know which address to connect-to? Will it ask in syrius, or it assume that the currently selected address is the one to connect? If it can ask which address to connect, or even give options to connect to multiple (or all), would be great but I understand it may not be possible due to the way syrius is built.
Could be great to develop a web-based syrius, though even though it can auto-sign, it would still open syrius to trigger the tx signing automatically after the user authenticated into his wallet right?
It will assume the currently selected address. It cannot connect to multiple addresses (and it shouldn’t).
Flutter for Web is in beta, but I saw that the Syrius browser extension is already in development. I don’t know how the auto-signing works, but I saw that Infinity wallet has this feature implemented and it works in production.
We’ll add the ability to connect-to multiple addresses (one by one) from the web. If someone attempts to transact from an unselected address within syrius, can there be a method via deeplink to change the address profile for syrius, and then trigger the transaction? (note: which would be required regardless)
Also in that case, I wonder if a web-based dApp can serialize reward claiming for all connected addresses… something missing in syrius atm as you have to switch between profiles to claim for each address.
I see, so the idea of intentional delays between transactions of different addresses (part of a keystore), invites more privacy as one can assume less potential links between addresses?
Currently, there aren’t any explicit delays in the wallet. The process of requiring users to manually switch to a different address introduces a delay.
Mehowz might be inquiring about his service inserting an artificial delay between transactions that originate from the same keystore.
Step 2: The user has 3 options:
Option A: He scans the QR code (containing the WC link encoded as a QR)
Option B: He copies the WC link
Option C: He clicks on Desktop → Syrius (deep linking)
Step 3: Session approval: he confirms the connection from the Syrius wallet
Step 4: Sign message: When a transaction is initiated by the WebApp, the user signs it in Syrius
Step 4: Session disconnect: The user can manage his active connections and terminate the connection with a particular WebApp