Create and Deploy an iApp β
Bootstrap TEE-compatible applications in minutes without any hardcoding skills, iApp Generator handles all the low-level complexity for you.
- Select your project mode & language - Get started with either a basic or advanced setup, depending on your experience with the iExec framework. You can use Python or JavaScriptβwhichever you prefer!
- Develop your iApp effortlessly - Write your application logic using familiar programming languages while the generator handles all TEE-specific configurations.
- Access to TEEs easily - No need to dive into low-level requirements, create iApps that connect to TEEs in minutes.
- Check and deploy iApps quickly - iApp Generator checks that your iApp complies with the iExec Framework and streamlines its deployment.
bash
# Create your iApp (Python or Node.js supported)
iapp init my-privacy-app
cd my-privacy-app
# Develop and test locally (simulates TEE environment)
iapp test
# Deploy to the network
iapp deploy
Note: iApp Generator currently supports Python and Node.js, but iApps can be built in any language that runs in Docker.
Real Examples β
Here are some real-world examples of iApps to help you understand how they work in practice.
Email Notification iApp β
This iApp lets you send updates to your contacts without ever seeing their email addresses, privacy is preserved by design.
js
/* User runs: "Send updates to my contacts about my project" */
const contacts = loadProtectedData(); // User's protected contact list
contacts.forEach((contact) => {
sendEmail(contact, projectUpdateMessage);
});
// β Emails sent directly, you never see the addresses
python
# User runs: "Send updates to my contacts about my project"
contacts = load_protecteddata() # User's protected contact list
for contact in contacts:
send_email(contact, project_update_message)
# β Emails sent directly, you never see the addresses
Oracle Update iApp β
This iApp securely updates a price oracle using private trading data, ensuring sensitive information stays confidential.
js
// User runs: "Update price oracle with my private trading data"
const tradingData = loadProtectedData(); // User's protected trading history
const averagePrice = calculateWeightedAverage(tradingData);
updateOracleContract(averagePrice);
// β Oracle updated with real data, trading history stays private
python
# User runs: "Update price oracle with my private trading data"
trading_data = load_protecteddata() # User's protected trading history
average_price = calculate_weighted_average(trading_data)
update_oracle_contract(average_price)
# β Oracle updated with real data, trading history stays private
Automated Transactions iApp
This iApp automates monthly payments using protected payment details, so financial information remains private.
js
// User runs: "Automate payments every month"
const paymentInfo = loadProtectedData(); // User's payment details
for (let month = 0; month < 12; month++) {
processPayment(paymentInfo);
}
// β Payments processed, payment details stay private
python
# User runs: "Automate payments every month"
payment_info = load_protecteddata() # User's payment details
for month in range(12):
process_payment(payment_info)
# β Payments processed, payment details stay private