@hristolimechain.near [Posted on DevHub](https://near.social/#/devgovgigs.near/widget/Post?id=1359) ## Solution: NEAR Ledger Rust Application **About us:** LimeChain is a blockchain software development service company with 180+ successfully executed projects. We are a team of more than 110 enthusiasts, we can proudly place ourselves among the prominent builders of Web3, who never stop to seek ways of innovating and revolutionizing the ecosystem. We are blockchain agnostic and our long-term goal is to further expand our heavy-lifting experience in core protocol development across the leading blockchain networks, such as NEAR. We already successfully implemented our first contribution within the NEAR ecosystems for a [Local execution of view calls]( https://near.social/devgovgigs.near/widget/gigs-board.pages.Post?id=455 ). ## **Proposition: NEAR Ledger Rust Application** Limechain is suggesting to reimplement the NEAR Ledger app using the Ledger Rust SDK. From a functional perspective, the implementation is primarily focused on resolving critical issues that directly impact the ability of the users to efficiently use their Ledger devices - lack of meta transaction support and processing large transaction payloads that are bigger than 600 bytes (due to the memory limit on the device). By resolving these limitations and transitioning the implementation to Rust, a more secure programming language, we aim to provide the community with an improved foundation for contributions. Additionally, LimeChain is committed to assuming long-term responsibility for the ongoing maintenance of this project. ## **Proposal Benefits** Adopting the Rust SDK represents a significant milestone, which will offer the following functional and non-functional benefits: 1. **Meta-transactions support:** Meta-transactions introduce enhanced flexibility and usability, simplifying asset management for users. 2. **Sign large transactions:** An outstanding issue will be resolved regarding the hardware limitations of Ledger devices that prevent users from signing large transactions such as contract deployments and DAO votes. 3. **NEAR Protocol Synergy:** Rust aligns seamlessly with the NEAR Protocol, ensuring compatibility and deep integration with the NEAR ecosystem. Additionally, Rust will draw in a larger pool of experienced NEAR developers who can analyze and contribute to the app's codebase, making the repository easier to maintain. ## **Development roadmap** ### Milestone 1. Rewrite existing functionalities to the new Rust SDK * Get public key * Get wallet id * Get app configuration * Error handling * Implement NEAR message signing(`near_message_sign`) (Clear signing) * Implement NEAR transaction parsing(`parse_transaction`) * Implement NEAR transaction signing(`handle_sign_transaction`) (Clear signing) * Implement helper functions * Addunit tests ### Milestone 2. Add support for meta transactions and signing big transaction payload * Parse meta transaction - Example payload [here](https://github.com/near/nearcore/pull/8385/files#diff-90dfa190ec8dff070747d21fd42e25f6022268a7d008ae1e00c0dd5ada2e5bd2R556) * Sign meta transaction (Clear signing) * Add unit tests * Signing large transaction payload (Blind signing) - If the transaction is bigger than the hardware limit of the device - Sign the hash of the transaction ### Milestone 3. Ledger Requirements and deployment to Ledger Live [Requirements by Ledger](https://developers.ledger.com/docs/embedded-app/release-requirements/#3---embedded-app): * I have read the [coding guidelines](https://developers.ledger.com/docs/embedded-app/global-architecture/) * Embedded app source code (GitHub repository) * My app repository has a test folder that contains the Functional tests and Unit tests * The App has been fully tested with a companion wallet (CLI or GUI) * Two icons for the Ledger Stax, Nano and for the Ledger Live Manager in PNG or GIF (see [Icons](https://developers.ledger.com/docs/embedded-app/icons/)) * [Video](https://developers.ledger.com/docs/embedded-app/ui-flow-video/#video) of your application running on the Ledger device (for Ledger Nano only) * The App has a [Blind Signing](https://developers.ledger.com/docs/embedded-app/blind-signing) setting (if applicable) * The [Guidelines_enforcer and Build_and_functional_tests workflow](https://developers.ledger.com/docs/embedded-app/framework#CI) succeeds ## **Project Timeline** The timeline for completing these activities would be 14 weeks. ## **Team setup** * 2 Full-time Senior Blockchain Developers * 1 Part-time Blockchain Architect * 1 Part-time Project Manager