Please describe your proposed solution.
Problem
Unbox offers innovative payment & value distribution solutions with its groundbreaking Ucoin platform, engineered for secure and targeted fund distribution within closed-loop systems. Using our CLS Engine, Unbox has provided solutions across the globe to solve diverse problems:
- Incentivising 90,000+ users to collect 1.7 Million pieces of litter in Belgium, US, Middle East and the UK (https://www.unboxuniverse.com/post/data-insights-1-million-pieces-of-litter-collected-in-belgium)
- Injecting 14+ Million Euros into the Belgian local economy to save businesses from the brink after COVID-19 Lockdown (https://www.unboxuniverse.com/post/antwerp-ucoin-proves-itself-as-a-booster-for-local-business-in-the-city-of-antwerp)
- Assisting refugees in Gaza promoting digital inclusion and aid distribution through an innovative waste management platform (https://www.unboxuniverse.com/post/digital-inclusion-unbox-and-united-nations-unrwa-launch-unlitter-gaza)
- Web3 wallet to combat Opioid addiction in Gary Indiana, offering financial incentives for those participating in recovery programs
These varied use cases are a testament to our commitment to impactful and sustainable economic models, aligning us closely with the ethos of Cardano.
Relying upon our CLS Engine, Ucoins facilitate direct, verifiable transactions between benefactors and participating organizations for targeted use of funds without leakage or slippage. This innovative approach redefines the relationship between funding sources and recipients, fostering impactful and transparent financial exchanges.
To achieve our goals, we've selected Cardano for its thoughtful focus on impactful projects and its advanced third-generation blockchain. On the Cardano chain, Ucoins are top-tier assets treated with the same priority and importance as the native token ADA. However, while several teams have typically relied on a Haskell based stack for Cardano dApp development, we've opted for Rust for its low-level efficiency and safety guarantees.
However, the Rust ecosystem support for developing Cardano dApps is lacking and is forcing teams to reinvent the wheel hindering effectiveness and introducing risks. Concretely, there's a lack of Rust libraries with high level APIs for building, parsing and testing transactions and Nix libraries for integrating Rust components in larger polyglot monorepos typical for Cardano dApp projects.
We plan to build on the excellent Rust libraries already existing in the ecosystem that provide a low level API for working with Cardano, namely Cardano Serialization Library, Cardano Multiplatform Library, Pallas and others, along with excellent Nix libraries existing today for Rust, namely Crane, RustOverlay, and others, and we plan to address the following deficiencies:
- Testing Cardano transactions against a realistic Cardano network easily
- Plutus Ledger API library for Rust with all the necessary types and their Plutus Data encodings,
- High level API for specifying Cardano transactions similar to existing frameworks (featuring automatic balancing and coin selection),
- Nix libraries for integrating Rust components in polyglot monorepos, featuring dynamic library and data dependencies, code quality automation (clippy, fmt, etc).
Solution
We propose to build the following components
- Rust library for Plutip (<https://github.com/mlabs-haskell/plutip>) enabling Rust users to quickly and easily orchestrate and submit Cardano transactions against a standalone, disposable Cardano Testnet
- Rust Plutus Ledger API library (<https://github.com/input-output-hk/plutus/tree/master/plutus-ledger-api>) with all the types, functions and Plutus Data encoding capabilities typically necessary to build and generally work with dApp datums
- Rust library for transaction building and parsing enabling Rust developers to build transactions using a high level API, but also to analyze transactions into its high level, domain specific form. This library will feature automatic balancing and coin selection similar to how it's done in equivalent libraries found in other ecosystems.
- Nix libraries for integrating Rust components in polyglot monorepos typical of Cardano dApp development. Much of Cardano’s tooling is dependent on reproducible Nix environments, furthermore, a typical Cardano dApp is structured as a polyglot monorepo featuring components written in different programming languages related in both compile-time and run-time. Luckily, Rust has an excellent, albeit low-level Nix support which we plan to use to facilitate its integration into monorepos.