Aspect mobile app written in Flutter
Checkout the demo video!
Team
Goal
For this hackathon we wanted to create a mobile version of Aspect written in Flutter. The goal was to use their API for read-only queries and indexing and starknet.dart SDK + session key to mint new NFTs.
What we achieved
For the flutter part itself and the use of the Aspect API, it worked quite seemlessly, so right now you are able to view aspect in read-only mode on mobile.
However, we kind of underestimate the implementation of the session key in dart, especially because when we started the hackathon, the SDK didn't have any signer / account logic implemented.
The first day, we attempted to understand how to integrate the session key but then realized we would first to implement the signer logic in the SDK. We then implemented part of the signer logic but didn't have time to implement the pedersen / signature logic (see the SDK code here)
So at the moment the sdk can mutate the blockchain state by using signatures generated by an external service (like starknet.js for example).
To still manage to integrate the mint function in the mobile app, we modified the account contract to strip off the signature / nonce validation logic and deployed it.
However, we didn't manage to call it from starknet js in time to compute the right calldata that we could then pass to our dart sdk.
So finally, only the read-only part of aspect is working in the app.
Next step
To properly achieve our objective, we need first to finish the SDK to be able to sign transactions from dart and thus implement mutation functions in flutter dApps.
Once it's done, we then need to leverage the argent plugin api to allow to sign transactions on behalf of the user account.