DistroFund - System Design/Specification
The app has a front-end that connects to an Aleo smart contract, which allows sending up to 15 tokens, either private or public, in a single transaction.
Last updated
The app has a front-end that connects to an Aleo smart contract, which allows sending up to 15 tokens, either private or public, in a single transaction.
Last updated
We are developing our application on the Aleo blockchain, which is a platform for private applications using zero-knowledge cryptography. The Aleo blockchain provides the perfect base for our project, as it allows us to transfer assets securely and privately.
User Interface (UI): We design our user interface to be smooth and easy to use. It lets you start and control asset transfers. It has a simple design that works for users with any skill level.
Leo Program (Smart Contract): Our Leo program will make asset transfers private and secure. The smart contracts will manage the asset allocation, keeping it private and trustworthy.
Blockchain Integration: Our system will integrate with the Aleo blockchain, leveraging its privacy-focused features for asset transfers and transaction privacy.
API Layer: The UI layer will directly work with the Leo program using the Aleo Typescript SDK
Users will access the application through the user interface, providing necessary details for private asset transfers.
The UI will interact with the API layer, which, in turn, communicates with the Leo Programs on the Aleo blockchain.
Leo Programs will use zero knowledge proofs to verify and execute private asset transfers while maintaining user privacy.
Asset: A digital representation of a value, which can include tokens, cryptocurrencies, or other blockchain-based assets.
Leo Programs: Smart contracts on the Aleo blockchain, designed for privacy-focused transactions.
API: Application Programming Interface, facilitating interaction between different software components.
DistroFund: DistroFund and Scatter could be used interchangeably - it is a term that we use in this document to describe our dApp that allows a user to send a token or native coins to multiple addresses in a single transaction.
Users can connect Leo wallet to our web-based application
Users can distribute Aleo native coin
Users can check their existing public and private account balance
Users can see paginated table of full account's transactions and redirect to https://explorer.aleo.org for additional information
Users can input a form with array of recipient addresses and corresponding amounts
Users can distribute Aleo native coins to multiple accounts in one transaction
Users can decide if they want to distribute Aleo native coin or tokens
Users can distribute Aleo tokens to multiple accounts in one transaction
Users that act as senders can decide to hide their sender address “transfer_private_to_public” (ZK feature)
Users can decide to hide the address of the receivers “transfer_public_to_private” (ZK Feature)
This is the initial rough wireframe design of DistroFund
On Figure 1 is the initial screen. Users should click connect-wallet and initiate a connection to the DistroFund application.
On figure 2 once the user has connected their wallet they can check the account balance and transaction history. They can create new single private transaction to transfer Aleo native currency to up to 15 recepients
On Figure 3 you can see opened New Transaction Screen with 2 input textareas, first one for desired recepient addresses and second for wanted amounts to send to each address.
On Figure 4 is same screen as Figure 3 but with valid inputs.
On Figure 5 the sender can see a summary of the DistroFund transaction and when the button is clicked only a single transaction will be broadcasted, but it will send the desired funds to multiple receivers.
Work in progress:
On this step it will be an option for the sender to:
transfer_private_to_public
transfer_public_to_private
transfer_public