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

SecuX Hardware Wallet supports Polkadot transactions and staking #2286

Closed
wants to merge 9 commits into from

Conversation

rus7hex
Copy link

@rus7hex rus7hex commented Apr 16, 2024

Project Abstract

Integrating cutting-edge SecuX hardware wallets equipped with multi-factor authentication and secure chip technology, Polkadot provides both holders of high-value assets a secure and intuitive way to protect their investments, and bolsters the total value locked (TVL) within the network. This partnership highlights Polkadot's commitment to crafting a secure and reliable investment environment, attracting high-value investors for long-term engagement.

Grant level

  • Level 1: Up to $10,000, 2 approvals
  • Level 2: Up to $30,000, 3 approvals
  • Level 3: Unlimited, 5 approvals (for >$100k: Web3 Foundation Council approval)

Application Checklist

  • The application template has been copied and aptly renamed (project_name.md).
  • I have read the application guidelines.
  • Payment details have been provided (Polkadot AssetHub (DOT, USDC & USDT) address in the application and bank details via email, if applicable).
  • I understand that 30% of each milestone will be paid in vested DOT, to the Polkadot address listed in the application.
  • I am aware that, in order to receive a grant, I (and the entity I represent) have to successfully complete a KYC/KYB check.
  • The software delivered for this grant will be released under an open-source license specified in the application.
  • The initial PR contains only one commit (squash and force-push if needed).
  • The grant will only be announced once the first milestone has been accepted (see the announcement guidelines).
  • I prefer the discussion of this application to take place in a private Element/Matrix channel. My username is: @_______:matrix.org (change the homeserver if you use a different one)

Copy link
Contributor

github-actions bot commented Apr 16, 2024

CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅

@github-actions github-actions bot added the admin-review This application requires a review from an admin. label Apr 16, 2024
@rus7hex
Copy link
Author

rus7hex commented Apr 16, 2024

I have read and hereby sign the Contributor License Agreement.

@rus7hex rus7hex marked this pull request as ready for review April 17, 2024 05:20
@keeganquigley
Copy link
Contributor

Hi @rus7hex thanks for the application. Currently, the milestone table is missing the default deliverables 0a. - 0e. as listed in our application template. Could you add these in? Docker might not be necessary in your case, so you can omit this, but the other sections should still apply. Thanks!

@keeganquigley keeganquigley added the changes requested The team needs to clarify a few things first. label Apr 17, 2024
@PieWol
Copy link
Member

PieWol commented Apr 18, 2024

Hey @rus7hex ,
please combine both tables into one and keep the default column headers as given in the template.
Thanks.

@PieWol
Copy link
Member

PieWol commented Apr 19, 2024

Regarding Hardware wallets, historically speaking Ledger had a lot of trouble to offer a user friendly convenient solution for the whole substrate ecosystem as each chain required a different app. I'm not sure right now what the reason for this choice was. Possibly the need for different metadata for different chains. Even worse was the problem that the addresses of accounts that are associated with a single ledger app for a substrate chain could be converted with tools like subscan which led to the issue that people sent funds to this converted address on other chains assuming that their ledger will have exactly this converted address in the app for the other chain. Yet ledger apps for different chains are not sharing one underlying account so addresses varied. How are you solving this problem which led ledger to this decision? Preferrably you can come up with a concept that drastically improves this UX mess for users. Looking forward to your answers.

@PieWol
Copy link
Member

PieWol commented Apr 19, 2024

More in scope of this very Polkadot only specific application I have a question regarding "Seed phrase generation and management, signing a transaction and staking." which you listed as key-deliverable.

"Signing a transaction" is a somewhat very vaguely specified deliverable. As you probably know Polkadot and other Substrate based chains use multiple pallets each with different extrinsics. So does this key-deliverable now mean that you will support ALL extrinsics that Polkadot offers or are you just describing the process of transacting tokens? E.g. sending Tokens from one account to another? I'm asking because if you were to support all extrinsics there wouldn't be the need to specify functionality for staking as an additional deliverable.

TLDR: What exactly means "signing a transaction" as a deliverable? Does the deliverable about staking compatibility mean that you are supporting ALL staking related extrinsics?

Thank you for your clarification.

@PieWol PieWol self-assigned this Apr 22, 2024
@rus7hex
Copy link
Author

rus7hex commented Apr 23, 2024

Regarding Hardware wallets, historically speaking Ledger had a lot of trouble to offer a user friendly convenient solution for the whole substrate ecosystem as each chain required a different app. I'm not sure right now what the reason for this choice was. Possibly the need for different metadata for different chains. Even worse was the problem that the addresses of accounts that are associated with a single ledger app for a substrate chain could be converted with tools like subscan which led to the issue that people sent funds to this converted address on other chains assuming that their ledger will have exactly this converted address in the app for the other chain. Yet ledger apps for different chains are not sharing one underlying account so addresses varied. How are you solving this problem which led ledger to this decision? Preferrably you can come up with a concept that drastically improves this UX mess for users. Looking forward to your answers.

The SecuX wallet notably facilitates the creation of up to 500 distinct addresses from a singular seed phrase, offering Polkadot users a streamlined and secure method to manage various cryptocurrency assets across multiple blockchains. This capability underscores the wallet's utility in enhancing the operational efficiency and safety for individuals engaging with diverse digital currencies.

More in scope of this very Polkadot only specific application I have a question regarding "Seed phrase generation and management, signing a transaction and staking." which you listed as key-deliverable.

"Signing a transaction" is a somewhat very vaguely specified deliverable. As you probably know Polkadot and other Substrate based chains use multiple pallets each with different extrinsics. So does this key-deliverable now mean that you will support ALL extrinsics that Polkadot offers or are you just describing the process of transacting tokens? E.g. sending Tokens from one account to another? I'm asking because if you were to support all extrinsics there wouldn't be the need to specify functionality for staking as an additional deliverable.

TLDR: What exactly means "signing a transaction" as a deliverable? Does the deliverable about staking compatibility mean that you are supporting ALL staking related extrinsics?

Thank you for your clarification.

SecuX is dedicated to providing support for both transaction signing and staking on the Polkadot and Kusama networks. This commitment equips our users with comprehensive tools that are vital for efficiently managing and enhancing their digital assets within these ecosystems. Additionally, we are keen and open to exploring collaboration opportunities with other parachains in various proposals. We believe that such cooperative efforts can yield mutually beneficial outcomes and drive further innovation within the community.

@PieWol PieWol added ready for review The project is ready to be reviewed by the committee members. and removed changes requested The team needs to clarify a few things first. admin-review This application requires a review from an admin. labels Apr 24, 2024
@rus7hex
Copy link
Author

rus7hex commented Apr 26, 2024

@PieWol please let us know if a meeting is needed for the review, thank you.

@keeganquigley
Copy link
Contributor

Thanks @rus7hex most of the team is traveling for a team retreat this week so will probably be early next week before more feedback is given. Thanks for your patience!

@PieWol PieWol added the admin-review This application requires a review from an admin. label Apr 30, 2024
Copy link
Member

@semuelle semuelle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @rus7hex. Thanks for the application and the effort you put into it. Correct me if I'm wrong, but it looks to me as if the software you are building is based around proprietary hardware, which is something we usually try to avoid. Also, large parts of this project are dependent on successfully merging changes into the staking dashboard and polkadot.js apps repos, which we have had mixed success with, so I'm wondering if there was a better way to integrate, like working with Talisman or other wallets.

Comment on lines 181 to 182
| 3. | SecuX SE Firmware version number | Development of Secure Element (SE) Firmware. |
| 4. | SecuX MCU Firmware version number | Development of MCU Firmware including transection confirmation, transection details, account balance. |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are these called version number?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We will have specific SE firmware version and MCU firmware version supporting Polkadot.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand, I'm just a bit confused why that's the name of the deliverable when the actual work being done for it is software development. Could you expand a bit on what exactly needs to be implemented for these deliverables that's specific to Polkadot? Account generation?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. To implement and verify compatibility with BIP32-ED25519 seed phrase recovery, ensuring that accounts generated by Ledger are compatible with SecuX and vice versa. Users can switch between Ledger and SecuX devices without worrying about compatibility issues.

  2. Display the Polkadot (DOT) cryptocurrency icon on the front end of the SecuX Web Wallet app.

  3. Support Polkadot (DOT) cryptocurrency send/receive functions, including transaction history, via the SecuX Web Wallet and SecuX Hardware Wallet through WebUSB or Bluetooth.

  4. Prompt the user to confirm the transaction amount and receiver address on the SecuX Hardware Wallet.

| 3. | SecuX SE Firmware version number | Development of Secure Element (SE) Firmware. |
| 4. | SecuX MCU Firmware version number | Development of MCU Firmware including transection confirmation, transection details, account balance. |
| 5. | SecuX SDK Polkadot integration tutorial | Provide SDK API for Polkadot.js. |
| 6. | SecuX Web Wallet Firmware update | Distribute Polkadot SE and MCU Firmwares. |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How do you distribute the firmware? Please note that all deliverables should ideally be reusable, so please specify or remove. See also our FAQ.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updates will be done through our SecuX web wallet.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you elaborate what is being delivered here? To reiterate, all deliverables should be reusable and verifiable.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

revising

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you still working on this, @dannyhuang213?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rus7hex is helping to update it now, thank you for your patience.

| **0b.** | Documentation | We will deliver a comprehensive "How It Works" guide covering three critical aspects of interacting with the Polkadot network: generating a Polkadot address, confirming a transaction, and engaging in staking. This guide will provide users with step-by-step instructions, ensuring they have a clear understanding of each process, which is essential for secure and effective participation in the Polkadot ecosystem. |
| **0c.** | Testing and Testing Guide | We will supply a detailed testing guide along with a SecuX hardware wallet to thoroughly verify the new functionalities. This approach will ensure that all features are tested under real-world conditions, providing users with reliable and secure solutions within the ecosystem. |
| 0e. | Article | We will create and publish an in-depth article that explores the various supports and functionalities of the Polkadot network. Additionally, we will enhance the article's reach through a co-marketing initiative on social media with Polkadot. This strategic partnership will not only educate our audience about Polkadot's capabilities but also amplify our content's visibility and engagement across platforms. |
| 1. | Periodically Meeting | Collaborative Efforts and Communication, Polkadot Integration of SecuX SDK support. |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Who is meeting here? See my note below on reusability of deliverables.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The purpose of the periodic meeting is to gain a comprehensive understanding of Polkadot's JavaScript user interface and its staking dashboard.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Sebastian @semuelle please feel free to let us know if you have any questions, we will be happy to clarify things

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The purpose of the periodic meeting is to gain a comprehensive understanding of Polkadot's JavaScript user interface and its staking dashboard.

That doesn't answer my question. Please keep in mind that deliverables in the grants program should be reusable and verifiable, which meetings usually aren't (unless the deliverable is a result of these meetings).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

revising

@rus7hex
Copy link
Author

rus7hex commented May 9, 2024

Hi @rus7hex. Thanks for the application and the effort you put into it. Correct me if I'm wrong, but it looks to me as if the software you are building is based around proprietary hardware, which is something we usually try to avoid. Also, large parts of this project are dependent on successfully merging changes into the staking dashboard and polkadot.js apps repos, which we have had mixed success with, so I'm wondering if there was a better way to integrate, like working with Talisman or other wallets.

The primary purpose is to support Polkadot, our hardware wallet is built using industry-standard architecture like an MCU and a Secure Element.

@PieWol
Copy link
Member

PieWol commented May 14, 2024

Hey @rus7hex ,
thank you for the time and effort you put into this application. I sadly will not approve it but maybe my colleagues will. I deem this application as the start of sunk cost fallacy relationship between your company and the foundation. Constantly threatening to no longer maintain the apps as Polkadot is a fast paced ecosystem. An eventual halting of maintenance on your end, in case the foundation no longer funds the development, would hurt the reputation of the ecosystem. Presumably far further than the bounds of your userbase. Trying to get the funds to even start this endeavour are sadly not convincing to me.

I'm wishing you all the best going forward.

@dannyhuang213
Copy link

@PieWol

Hey @rus7hex , thank you for the time and effort you put into this application. I sadly will not approve it but maybe my colleagues will. I deem this application as the start of sunk cost fallacy relationship between your company and the foundation. Constantly threatening to no longer maintain the apps as Polkadot is a fast paced ecosystem. An eventual halting of maintenance on your end, in case the foundation no longer funds the development, would hurt the reputation of the ecosystem. Presumably far further than the bounds of your userbase. Trying to get the funds to even start this endeavour are sadly not convincing to me.

I'm wishing you all the best going forward.

We will continue to support Polkadot and list it as one of our standard offerings. Not only do we care about our reputation, but also our customers' experience and success.

@takahser takahser self-requested a review May 24, 2024 08:40
Copy link
Collaborator

@takahser takahser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dannyhuang213 thanks for your interest in our grants program and the work you put into this thus far. Unfortunately, I've decided to not add my approval, since I agree with my colleagues on their reasonings

I also want to mention that our funding guidelines require all produced code to be open-sourced and independent of closed-source software:

All code produced as part of a grant must be open-sourced, and it must also not rely on closed-source software for full functionality. We prefer Apache 2.0, but GPLv3, MIT, or Unlicense are also acceptable.

I know, in your case it's technically hardware (though one could argue that the hardware is programmed with proprietary software as well), but I think the dependency is comparable.

I appreciate your understanding and hope you'll continue to support Polkadot with your innovative hardware. Thanks again!

@semuelle
Copy link
Member

Hi @rus7hex & @dannyhuang213, thanks again for the application, but the committee has decided not to support it, the main reason being the use of proprietary hardware. We still hope that you will continue working on the project and I hope we will be able to work together sometime, somewhere in the future.

@semuelle semuelle closed this May 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
admin-review This application requires a review from an admin. ready for review The project is ready to be reviewed by the committee members.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants