iApp Generator: Your Development Tool β
Bootstrap TEE-compatible applications in minutes without any hardcoding skills, iApp Generator handles all the low-level complexity for you.
- Access to TEEs easily - No need to dive into low-level requirements, build 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.
- 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!
# 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.
# 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
/* 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
Oracle Update iApp
This iApp securely updates a price oracle using private trading data, ensuring sensitive information stays confidential.
# 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
/* 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
Automated Transactions iApp
This iApp automates monthly payments using protected payment details, so financial information remains private.
# 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
/* 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