Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master' into oneramp
Browse files Browse the repository at this point in the history
update local repo with upstream
  • Loading branch information
eliashezron committed Dec 18, 2024
2 parents 568e933 + 207f1d9 commit ad8b5d1
Show file tree
Hide file tree
Showing 3 changed files with 183 additions and 7 deletions.
176 changes: 176 additions & 0 deletions applications/MigrationEase.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
- **Team Name:** Zondax AG
- **Payment Address:** DOT/AssetHub address 1fN87Fgj5BUhezFgbLiGbXTMrBVggnmYBX9anzMBky8KaJ5
- **[Level]**: 3

## Project Overview :page_facing_up:

The recent release of the new [Ledger Application for Polkadot](https://zondax.ch/blog/all-in-one-polkadot-app-is-here-2) delivers significant advantages by consolidating multiple substrate-based chains into a unified, secure Ledger application. This marks a major improvement for users managing assets across the Polkadot ecosystem.

However, migrating funds from older Ledger-based accounts to this new application remains challenging for many users. The issue is not with the Ledger app itself, but with the lack of a user interface that could guide them through the migration process.

The migration process is today still largely manual. This complexity creates barriers for users who want to adopt the new Polkadot Universal app but struggle with the current migration workflow.

This project aims to simplify the migration process, making it more accessible to the broader Polkadot community.

The application will allow users to connect their Ledger devices and guide them step-by-step through the migration process. The application will indicate which accounts or apps can be migrated immediately, and which ones may not yet be eligible for migration, offering transparency and reducing confusion.

### Overview

The primary goal of this project is to create an intuitive, user-friendly interface that simplifies the migration process for Polkadot and Parachain Ledger users.

This web application will allow connecting Ledger devices, automatically display accounts eligible for migration, and assist users through the migration process in a secure and clear manner.

### Project Details
#### Technology and Languages

Frontend
Next.js
MUI
Typescript
Ledger Integration Libraries

Backend
Integrating indexing infrastructure / APIs

### Ecosystem Fit

Zondax is a growing and distributed team with experience and projects for more than 50 blockchains. Zondax has been contributing to the Substrate ecosystem since 2018-2019. The team has received and completed a large number of W3F grants and currently maintains most Ledger apps for the ecosystem.

## Team :busts_in_silhouette:

### Team members

- 1 x Fullstack Engineer
- 1 x Frontend Engineer
- 0.5 x Project Manager
- 0.2 x DevOps Support

### Contact

- **Contact Name:** Juan Leni and Ainhoa Aldave
- **Contact Email:** [email protected] / [email protected]
- **Website:** zondax.ch

### Legal Structure

Legal structure
Zondax AG
Dammstrasse 16
Zug 6300
Switzerland
UID CHE-491.796.576

### Team's experience

Over the last few years, Zondax has been involved in a large number of projects for most of the key players in the blockchain industry. Our team includes experts in most blockchain aspects, from cryptography to data and protocol engineering.
### Team Code Repos

Most of our contributions to the blockchain ecosystem can be found in our GitHub organization [zondax](https://github.com/zondax)


## Development Status :open_book:

Not initiated.

## Development Roadmap :nut_and_bolt:

## Technical Scope:


### Milestone 1 Initial UI & Basic Functionality

In this milestone, we will deliver a minimal user interface (UI) that allows users to connect to a Ledger hardware device and interact with their accounts with the objective to facilitate the Migration process from old accounts to the new Polkadot generic app.

The core features include:
- **Connect to Ledger Hardware Device**: Users will be able to securely connect their hardware wallets when using the polkadot generic and migration apps previously developed by Zondax.
- **Scan and View Accounts**: The app will scan the connected devices and display all relevant accounts, allowing users to view their account balances.
- **Balance Overview**: Users can easily check the balance of their accounts, including unstaked/available funds.
- **Transfer and Account Management**: For accounts that are not locked (e.g., due to staking or other restrictions), users will be able to transfer accounts and send funds. This will include the transfer of NFTs.

### Milestone 2 Advanced Flows and Improvements

In this milestone, we will extend the functionality of the application by introducing advanced account management and support for additional flows. Key deliverables include:

- **Facilitated Staking/Unstaking**: The application will facilitate the staking and unstaking process, providing users with a simplified flow to stake or unstake their assets and informing them about at what stage they’re able to initiate the account migration process. Additionally, the app will streamline workflows for handling common asset locks associated with voting and delegations. It will also support a visual guide for handling other common locks tied to standard pallets, assisting users through a manual unlock process when needed.
- **Kusama, AssetHub and 5 Parachain Support**: The app will support interactions with up to 5 parachains, this will be done as a reference, extensibility is described in the following point.
- **People chain support**: the application will facilitate specific actions on the People chain, such as removing identity and transfer of unreserved funds.
- **Simplified Management of proxies, multisig and decision deposits**: the application will include workflows for managing proxies, multisig accounts and decision deposit reserves, making these processes more user-friendly.
- **Configuration and Documentation**: We will provide a standardized configuration and documentation so compatible parachains can provide parameters, logo and other information to contribute to the current application.
- **Enhanced User Experience**: Optimized flows and improved waiting time display for transactions, specifically when dealing with Kusama’s AssetHub and parachains.

### Milestone3 Maintenance and improvements

Ongoing maintenance and operation of the application for a period of 12 months.
We will cover all costs for the operation of the website, we can provide monitoring information similar to checkly.

Modifications and updates to ensure optimal performance and address any issues
Includes maintenance of the Migration Ledger App without the addition of new features.
Continue support for features that are moved from the relay chain to Asset Hub: staking, OpenGov, balances.

It does not include technical support for parachains teams.

### Overview

- **Total estimated workload:** 2 months
- **Delivery time:**: 3 months
- **Full-Time Equivalent (FTE):** 2.7 FTE
- **Total Costs:** 87'000 USDT
- **DOT %:** Percentage of Total Costs to be paid in (vested) DOT = 50%

### Milestone 1 Initial UI & Basic Functionality

- **Estimated workload:** 1 month
- **Delivery time:**: 1.5 months
- **FTE:** 2,7
- **Costs:** 37'500 USDT

| Number | Deliverable | Specification |
| -----: | ----------- | ------------- |
| **0a.** | License | Apache 2.0 / GPLv3 / MIT |
| **0b.** | Documentation | We will provide a inline documentation of the code and inline documentation of the code and a basic tutorial |
| **0c.** | Testing and Testing Guide | Core functions will be fully covered by comprehensive unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests. |
| **0d.** | Docker | We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone. |
| 0e. | Article/Tutorial |Initial article/tutorial explaining the project and how to use the web application |
| 1. | PoC code| General structure |
| 2a. | Code| Connect to Ledger Hardware Device |
| 2b. | Code| Scan and View Accounts |
| 2c. | Code| Balance Overview |
| 2d. | Code| Transfer and Account Management |

### Milestone 2 Advanced Flows and Improvements

- **Estimated workload:** 1 month
- **Delivery time:**: 1.5 months
- **FTE:** 2,7
- **Costs:** 37'500 USDT

| Number | Deliverable | Specification |
| -----: | ----------- | ------------- |
| **0a.** | License | Apache 2.0 / GPLv3 / MIT |
| **0b.** | Documentation | We will provide a inline documentation of the code and inline documentation of the code and a basic tutorial |
| **0c.** | Testing and Testing Guide | Core functions will be fully covered by comprehensive unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests. |
| **0d.** | Docker | We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone. |
| 0e. | Article/Tutorial | We will publish the final article/tutorial explaining the project and how to use the web application |
| 1. | PoC code| General structure |
| 2a. | Code| Facilitated Staking/Unstaking |
| 2b. | Code| Kusama AssetHub and 5 Parachain Support |
| 2c. | Code| Simplified Management of proxies, multisig and decision deposits |
| 2d. | Code| Standardized configuration and documentation |
| 2e. | Code| Enhanced User Experience |

### Milestone3 Maintenance and improvements

- **Estimated workload:** 1 month
- **Delivery time:**: 12 months
- **FTE:** 0,3
- **Costs:** 12'000/ USDT - We request a payment of $3k per quarter.

Maintenance and operation for 12 months

## Future Plans

Depending on the traffic and feedback from the community, we may extend functionality beyond this current contract.

## Additional Information :heavy_plus_sign:

Zondax has been contributing to the Polkadot ecosystem for several years, and has successfully completed several grants.
8 changes: 4 additions & 4 deletions applications/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ Besides, **there is a clear difference between an application being accepted and
| [Katarína Valová](https://github.com/kacena123) | [AgriDot](./AgriDot.md) | [GitHub](https://github.com/kacena123) ||||
| [ParaSpell Research Foundation](https://paraspell.xyz/) | [xcNFT](./xcNFT.md) | [GitHub](https://github.com/paraspell) ||||
| [Web3 Association](https://github.com/web3association) | [Open source contributor funding experiment](./web3-association-open-source-contributor-funding-experiment-setup.md) | [GitHub](https://github.com/web3association) ||||
| [SIGMA 8 SOLUTIONS](https://github.com/lukastanisic99) | [P2P State Channels](./P2PStateChannels.md) | [GitHub](https://github.com/lukastanisic99) ||| |
| [SIGMA 8 SOLUTIONS](https://github.com/lukastanisic99) | [P2P State Channels](./P2PStateChannels.md) | [GitHub](https://github.com/lukastanisic99) ||| |

[🔝](#top)

Expand Down Expand Up @@ -102,9 +102,9 @@ Besides, **there is a clear difference between an application being accepted and
| [Relai Network](https://relai.network/) | [Futur & Fusion Protocols](./FuturFusion.md) | [GitHub](https://github.com/RELAI-Network) ||||
| [Zondax AG](https://zondax.ch/) | [User Account Access Security Analysis](./research_wallets.md) | [GitHub](https://github.com/zondax) ||||
| [Philoniare Team](https://github.com/philoniare/) | [create-substrate-app](./create-substrate-app.md) | [GitHub](https://github.com/philoniare/) ||||
| [David Semakula](https://davidsemakula.com) | [pallet-verifier](./pallet-verifier.md) | [GitHub](https://github.com/davidsemakula) || | |
| [David Semakula](https://davidsemakula.com) | [pallet-verifier](./pallet-verifier.md) | [GitHub](https://github.com/davidsemakula) || | |
| [Algorealm](https://github.com/algorealminc) | [SwarmNL](./swarm-nl.md) | [GitHub](https://github.com/algorealminc) ||||
| [Rui Morais](https://github.com/fiono11) | [Threshold Signature Implementation](./ThresholdSignature.md) | [GitHub](https://github.com/fiono11) || | |
| [Rui Morais](https://github.com/fiono11) | [Threshold Signature Implementation](./ThresholdSignature.md) | [GitHub](https://github.com/fiono11) || | |

[🔝](#top)

Expand Down Expand Up @@ -170,7 +170,7 @@ Besides, **there is a clear difference between an application being accepted and
| [Off Narrative Labs](https://github.com/Off-Narrative-Labs) | [Tuxedo Parachain Support](./tuxedo_parachain.md) | [GitHub](https://github.com/Off-Narrative-Labs) ||||
| [PolyCrypt GmbH](https://polycry.pt) | [Distributed Cryptography for Polkadot Wallets](./distributed_cryptography_for_polkadot_wallets.md) | [GitHub](https://github.com/perun-network) ||||
| [Open Smart Contract](https://github.com/OpenSmartContract) | [ISO20022 PoC](./ISO20022.md) | [GitHub](https://github.com/OpenSmartContract) ||||
| [DAOsign](https://daosign.org/) | [DAOsign](./DAOsign.md) | [GitHub](https://github.com/DAOsign) ||| |
| [DAOsign](https://daosign.org/) | [DAOsign](./DAOsign.md) | [GitHub](https://github.com/DAOsign) ||| |
| [Zondax AG](https://zondax.ch/) | [PoC Polkadot Conformance Tests](./polkadot_tests.md) | [GitHub](https://github.com/zondax) ||||
| [SO/DA zone](https://github.com/sodazone) | [Ocelloids XCM Transfer Monitoring Service](ocelloids_xcm_monitoring_service.md) | [GitHub](https://github.com/sodazone) ||||
| [Moonsong Labs](https://moonsonglabs.com/) | [StorageHub](./StorageHub.md) | [GitHub](https://github.com/Moonsong-Labs) ||||
Expand Down
6 changes: 3 additions & 3 deletions applications/infimum.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ The goal of this system is to deincentivize collusion between participants given
4. Poll message state: mapping between poll id and a merkle tree of secret participant messages (i.e. votes and/or nullifiers)
5. Poll Result: mapping between poll id and outcome
4. Dependencies
1. We will rely on the [Groth16](https://eprint.iacr.org/2016/260.pdf) verifier provided by [bellman](https://github.com/zkcrypto/bellman/blob/main/src/groth16/verifier.rs) under the [MIT license](https://github.com/zkcrypto/bellman/blob/main/LICENSE-MIT).
1. We will rely on the [Groth16](https://eprint.iacr.org/2016/260.pdf) verifier provided by [arkworks](https://github.com/arkworks-rs/groth16) under the [MIT license](https://github.com/arkworks-rs/groth16/blob/master/LICENSE-MIT).
2. CLI tool
1. Description
1. Facilitates off-chain computations performed by participants and trusted operators. In particular, generating the values (e.g. encryption keys, proofs) required by the function signatures specified in the first deliverable (1.Susbtrate Pallet). This will be provided as a TypeScript library (in order to serve as a starting point for future integration into dApps) with a simple CLI wrapper.
Expand Down Expand Up @@ -175,9 +175,9 @@ Development status will be found over at [https://github.com/rhysbalevicius/infi
| 0a. | License | MIT |
| 0b. | Documentation | Inline documentation. Amendment to the original guide explaining the requirements for satisfying the verification logic. |
| 0c. | Testing | Unit tests for methods added. Updated unit tests for amended methods. |
| 1a. | Pallet: verification methods | Private methods for verifying proofs which have been generated off-chain by the CLI delivered in Milestone 3. Relies on the verification logic provided by bellman (https://github.com/zkcrypto/bellman). |
| 1a. | Pallet: verification methods | Private methods for verifying proofs which have been generated off-chain by the CLI delivered in Milestone 3. Relies on the verification logic provided by arkworks (https://github.com/arkworks-rs/groth16). |
| 1b. | Pallet: method modifications | Modifications to methods 1.ii.h and 1.ii.i (listed under deliverables in the project overview) to call the private verification methods defined in Milestone 2.1.a — these modifications will guard against storage updates in the case that verification fails, and publish the final poll outcome in the case of success. |
| 2. | Circom circuits | Fork of MACI circuits defined here (https://github.com/privacy-scaling-explorations/maci/tree/master/circuits/circom) and licensed under MIT, amended as necessary for consumption within our off-chain proof generation pipeline. |
| 2. | Circom circuits | Fork of MACI circuits defined here (https://github.com/privacy-scaling-explorations/maci/tree/dev/packages/circuits) and licensed under MIT, amended as necessary for consumption within our off-chain proof generation pipeline. |

### Milestone 3 — CLI tool and docsite

Expand Down

0 comments on commit ad8b5d1

Please sign in to comment.