I'm looking into creating a mobile app for learning purposes and using Blockfrost as a data provider.

My initial idea is:

  • Device:
    • control the keys;
    • present the data;
  • Server:
    • fetch data from blockfrost;
    • core application (aggregate data, construct txs)
    • notifications;

mobile -> server -> blockfrost

Mobile app will share only the stakeKeyAddress to the server.

Also, the server will construct the transactions, but the signature will be done on the mobile side.

Do you find any issues with this approach?

Many thanks!

1 Answer 1


In general, it looks good. The way you store signing keys on the device is critical. Ideally, you want to support hardware wallets. Otherwise, make use of the OS native keystore (android/iOS).

You might be able to decrease the number of requests to your server when you have clients construct their signed Txs locally and have them submit to your backend. That decreases the back and forth of sending unsigned txs to the client, have them sign the Tx and submit to the backend again.

  • @william-berlin-pool I'll take a look into OS native keystore! I decided to export the account public key and do coin selection + fee on the server side. (I might move this to the client tough) Thanks for helping! Sep 21, 2022 at 17:16
  • Cool! I'd recommend having the coin selection alg implemented where the wallet lives to avoid further utxo set exchanges. This describes the preferred alg implementation well: cips.cardano.org/cips/cip2
    – Will
    Sep 21, 2022 at 19:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.