Skip to content

Deploy and Run an iApp

It's time to run your iApp! After building and testing, you'll need to deploy it to a supported network and then execute it.

Prerequisites

Before deploying and running your iApp, ensure you have sufficient RLC tokens to cover:

  • Workerpool execution costs for running your iApp on decentralized compute resources
  • Protected Data access fees if your iApp requires confidential datasets (and you're not the data provider)
  • iApp execution costs if you're not the owner of the iApp you're running

Getting RLC tokens:

  • Arbitrum Mainnet: Purchase RLC from exchanges or bridge from Ethereum using the RLC Bridge
  • Arbitrum Sepolia Testnet: Get free RLC tokens from the iExec RLC Faucet for testing purposes
  • Bellecour: Bridge RLC from Ethereum using the RLC Bridge

Deploy your iApp

After your tests pass and the package is built, you can deploy your iApp to a supported network. During deployment, you'll enter your DockerHub credentials, specify your app version, and push both standard and TEE-compatible images:

Terminal
$ iapp deploy --chain arbitrum-mainnet
  ____             _             
 |  _ \  ___ _ __ | | ___  _   _ 
 | | | |/ _ \ '_ \| |/ _ \| | | |
 | |_| |  __/ |_) | | (_) | |_| |
 |____/ \___| .__/|_|\___/ \__, |
            |_|            |___/ 

Now that your iApp has been deployed on the iExec protocol, you can navigate to the cache folder to see your deployments saved. A file named deployments.json in the folder corresponding to your target network will be created containing each deployment made on this network. These files will help you easily track each deployment per network.

Here is an example:

json
[
  {
    "sconifiedImage": "robiniexec/iapp:0.0.1-tee-scone-5.9.1-v16-5aea8b4aa71d",
    "appContractAddress": "0x9665136c599ec361C8eE627eC4F35A23fBa94897",
    "owner": "0xbabE8270aC9857Af3aaC06877888F1939FbeC578",
    "date": "2025-08-12T13:16:18.252Z"
  },
  ...
]

Run your iApp

There are multiple ways to execute an iApp on the iExec network. An iApp can be:

  • Self-sufficient - Basic execution without additional inputs
  • Data-dependent - Requires protected data, secrets, input files, or command-line arguments

The iApp Generator CLI provides a streamlined way to execute iApp, especially for developers who have built their own iApp.

Note: For installation instructions, see the iApp Generator Getting Started guide.

Terminal
$ iapp run 0x1f80DCebc2EAAff0Db7156413C43B7e88D189923 --chain arbitrum-mainnet
  _____                     _       
 | ____|_  _____  ___ _   _| |_ ___ 
 |  _| \ \/ / _ \/ __| | | | __/ _ \
 | |___ >  <  __/ (__| |_| | ||  __/
 |_____/_/\_\___|\___|\__,_|\__\___|
                                    

Now that you have run your iApp on the iExec protocol, you can navigate to the cache folder to see your runs saved. A file named runs.json in the folder corresponding to your target network will be created containing each run made on this network. These files will help you easily track each run per network. Use the iExec Explorer to retrieve more data about your tasks.

Here is an example:

json
[
  {
    "iAppAddress": "0x9665136c599ec361C8eE627eC4F35A23fBa94897",
    "dealid": "0x26d758de1be51697c33fa606cd0c5243082a6e675a4463b106d71fde2893280f",
    "taskid": "0x1a58dd6018b30b022eb35be53ad9374eb630925458d14643a1dfd9c686b964d8",
    "txHash": "0x6f14eac6933c609fb6d3e6b2bbd18c373c6dc99c7d7fd22036d5a20f847c5e42",
    "date": "2025-08-18T18:30:03.711Z"
  },
  ...
]

Next Steps