IC Backend Functionality - Communicating with a Desktop or Mobile Application

We are in the Architecture phase of an end user software we plan to build using the InternetComputer.

A key concern is whether the IC can be used as a reliable backend for a desktop or mobile application.

After reading about Canister support for HTTPS Outcalls it’s clear the communication can go from the IC to an app via HTTPS:

But what about the reverse? Can an application talk to a canister, and retrieve information, and establish a dialogue with the IC. Effectively making the IC the backend of a rich Desktop or mobile application?

If this is so, can you please point me to somewhere in the IC Rust docs to read more about it, or ideally an example.

Thanks, and Happy Easter!


@josephgranata What you are looking for is an ‘Agent’. There is a list of agents for different languages here:

Thank you Ethan! this confirms that the IC can be a backend for a suitable desktop or mobile app, this is great news.

Here is an example I found by following your suggestion:


Never tried but you can also write desktop app with JS (e.g. Tauri, Electron) and mobile app with JS (e.g. Capacitor) so I’m guessing you could use agent-js there too.

The tricky part is probably implementing the sign-in (if you need one in a webview) but that sound also duable I am guessing since Distrikt is a mobile app available in store.


Thanks David @peterparker.

Yes we are exploring those options now.

1 Like