Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plugin Like System? #40

Closed
trymeouteh opened this issue Feb 16, 2021 · 5 comments
Closed

Plugin Like System? #40

trymeouteh opened this issue Feb 16, 2021 · 5 comments

Comments

@trymeouteh
Copy link

trymeouteh commented Feb 16, 2021

Maybe Consider creating a plugin like system which can be made for cryptocurrency devs to easily integrate their coin into the AirGap Vault and Wallet app.

The plugin will expect the cryptocurrency developers to create functions with the following parameters, some parameters are optional. Here is an example

  • send function (to, amount, speed/fee, privatesend, offchain)
  • receive function (to, amount, offchain)
  • gettransactions (address)
  • wordphrase (wordphrase, 25thword)
  • syncing (wordphrase)

And then with the wallet GUI all that is needed by the AirGap devs is to add the wallet and then can integrate the functions to get the coin supported. I am a basic web develop learning web development but I do not know much on mobile app and desktop app programming and an issue I can see if the language used for this since I know there is Java and Koplin or Android, Swift on iOS and other languages for desktop apps which can require the cryptocurrency devs the need to develop the plugin for up to three languages. Using one universal language like Python or JS could work but maybe hard to integrate on Android & iOS and can be more vulnerable to security issues when not using a native language.

This will also mean getting AirGap known by the crypto community as an open source software wallet for crypto developers to support so projects will come and get their coin supported and with the AirGap GUI developed, the cryptocurrency devs may not need to create their own user wallets and only will have to create core wallets and mining software.

I do think however AirGap should continue supporting very popular coins like Bitcoin and Ethereum.

@AndreasGassmann
Copy link
Member

We already have a library that contains all the protocol specific logic here, and is written in typescript: https://github.com/airgap-it/airgap-coin-lib

Both apps are hybrid apps, which means they are written in javascript, no native code is required for most changes.

Regarding the plugin system: I do like the idea because it would allow users to add features, without our users being affected by it. The main concern regarding new coins and features is that we as a project commit to it to a certain degree, which means our users will expect support going forward. If something breaks, they will expect us to fix it. So we only commit to new coins if we have the backing of the coin itself (except Bitcoin and Ethereum).

While I think this is an interesting idea, the effort required to make this work from us and others (those who are willing to add new coins) is very high. So this feature will most likely not happen any time soon, unless there is high demand from a lot of different projects.

@martin-braun
Copy link

@AndreasGassmann Is there any update towards the plugin system? In my eyes the major issue with AirGap is that it does not support Monero. I understand that it's hard to support it, as it's fundamentally different to Bitcoin, Ethereum and their respective alt coins.

Having a plugin system of some sorts that gives the end user control would allow the community to provide Monero without Monero's developers stepping in. It would unbind you from the responsibility, although it would require you to provide proper desktop apps with plugin support, because I can't imagine the web version supporting plugins without you shipping them.

Or is there already a concept that I'm not aware of?

@mlaeng
Copy link
Collaborator

mlaeng commented Sep 27, 2023

@martin-braun maybe check this out, it's brand new: https://support.airgap.it/isolated-module

@AndreasGassmann
Copy link
Member

As @mlaeng mentioned, this is a brand new feature and is being rolled out as we speak. Our own protocols are now also running as modules. There is some documentation available, as well as our own modules that can help you understand how it is structured.

One issue I see with the Monero integration is that Monero is not using BIP39 mnemonic. Our modules currently work on a level where the mnemonic is abstracted away from them, so the mnemonic logic is still part of the Vault app itself and cannot be changed by a module. What could currently be done is convert a BIP39 mnemonic, or a derivative of it, into a Monero compatible seed phrase and use that in the module. I think I vaguely remember one of the more popular wallets doing that in their Monero implementation, because their wallet was also multi-chain and was using BIP39.

We would be very happy if you or anyone else from the Monero community would take a stab at creating a Monero module!

Let us know if you need anything to get started.

@debeldami
Copy link
Collaborator

With the recent implementation of our plugin system, the suggestions raised in this issue have been addressed. I'll be closing it now. If you have any additional questions, please don't hesitate to reopen. Your feedback is appreciated. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants