Bring Web3 connectivity to the Zenon ecosystem.
Integrate the WalletConnect protocol into Syrius:
- Web3Wallet SDK for Dart/Flutter
- Web3Modal SDK for Dart/Flutter
- Integrate ZNN cryptography
- Syrius deep link support
- Syrius scan QR code support
- Testing
Bring Web3 connectivity to the Zenon ecosystem.
Integrate the WalletConnect protocol into Syrius:
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.
Regarding the WalletConnect integration:
ffi dependency)I have some questions:
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.
We can get listed here → Submit project
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)
Address profile switching in Syrius is not required to sign transactions for alternate addresses that are part of the same keystore.
Thanks @sol, that simplifies the UX
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.
That may or may not have been intentional.
I think it’s intentional. I think mixing addresses together can hurt on-chain privacy. I personally wouldn’t use this feature.
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?
What delays?
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.
Yes this is what I meant.
If something like that was built, and if we can manage to serialize transactions one after another to claim all connected wallet rewards.
Started working on WalletConnect v2 integration.
WebApp ← → WalletConnect SDK ← → Syrius
How does it work?
WebApp and clicks “Connect Wallet”scans the QR code (containing the WC link encoded as a QR)copies the WC linkclicks on Desktop → Syrius (deep linking)Session approval: he confirms the connection from the Syrius walletSign message: When a transaction is initiated by the WebApp, the user signs it in SyriusSession disconnect: The user can manage his active connections and terminate the connection with a particular WebAppThere are 2 requirements to finish this project:
Dart language supportZenon cryptography integration