diff --git a/.vitepress/config.mts b/.vitepress/config.mts
index 6b52e5d5..c2fee0e6 100644
--- a/.vitepress/config.mts
+++ b/.vitepress/config.mts
@@ -1,6 +1,6 @@
import { transformerTwoslash } from '@shikijs/vitepress-twoslash';
import tailwindcss from '@tailwindcss/vite';
-import { defineConfig } from 'vitepress';
+import { defineConfig, loadEnv } from 'vitepress';
import { fileURLToPath, URL } from 'node:url';
import { getSidebar } from './sidebar';
import {
@@ -8,6 +8,9 @@ import {
groupIconVitePlugin,
} from 'vitepress-plugin-group-icons';
+// Charger les variables d'environnement
+const env = loadEnv('', process.cwd());
+
// https://vitepress.dev/reference/site-config
export default defineConfig({
title: 'iExec documentation',
@@ -23,6 +26,12 @@ export default defineConfig({
'@': fileURLToPath(new URL('../src', import.meta.url)),
},
},
+ // Expose environment variables to the client
+ define: {
+ 'import.meta.env.VITE_REOWN_PROJECT_ID': JSON.stringify(
+ env.VITE_REOWN_PROJECT_ID
+ ),
+ },
},
srcDir: './src',
markdown: {
diff --git a/.vitepress/sidebar.ts b/.vitepress/sidebar.ts
index 66f8d51c..61ac6b43 100644
--- a/.vitepress/sidebar.ts
+++ b/.vitepress/sidebar.ts
@@ -16,16 +16,16 @@ export function getSidebar() {
link: '/overview/helloWorld/1-overview',
},
{
- text: 'Protect data',
+ text: 'Protect Data',
link: '/overview/helloWorld/2-protectData',
},
{ text: 'Build iApp', link: '/overview/helloWorld/3-buildIApp' },
{
- text: 'Manage data access',
+ text: 'Manage Data Access',
link: '/overview/helloWorld/4-manageDataAccess',
},
{
- text: 'Bonus chapter!',
+ text: 'Bonus Chapter !',
link: '/overview/helloWorld/5-bonusChapter',
},
],
@@ -79,15 +79,15 @@ export function getSidebar() {
text: 'PROTECT AND MANAGE DATA',
items: [
{
- text: 'β What Is Protected Data?',
+ text: 'β What is Protected Data?',
link: '/manage-data/what-is-protected-data',
},
{
text: 'π Guides',
items: [
{
- text: 'Create and Share Access to Protected Data',
- link: '/manage-data/guides/create-and-share-access',
+ text: 'Manage Access',
+ link: '/manage-data/guides/manage-access',
},
{
text: 'Handle Schemas and Dataset Types',
@@ -254,7 +254,7 @@ export function getSidebar() {
],
},
{
- text: 'Read data',
+ text: 'Read Data',
collapsed: true,
items: [
{
@@ -320,24 +320,6 @@ export function getSidebar() {
},
],
},
- {
- text: 'iApp',
- link: '/manage-data/dataProtector/advanced/iApp',
- collapsed: true,
- items: [
- {
- text: 'DataProtector Deserializer',
- link: '/manage-data/dataProtector/advanced/iApp/deserializer',
- collapsed: true,
- items: [
- {
- text: 'getValue',
- link: '/manage-data/dataProtector/advanced/iApp/deserializer/getValue',
- },
- ],
- },
- ],
- },
],
},
{
@@ -353,34 +335,34 @@ export function getSidebar() {
{
text: 'BUILD YOUR iAPP',
items: [
- { text: 'β What Is an iApp?', link: '/build-iapp/what-is-iapp' },
+ { text: 'β What is an iApp?', link: '/build-iapp/what-is-iapp' },
{
text: 'π Guides',
items: [
{
- text: 'Build and Deploy your iApps',
- link: '/build-iapp/guides/build-&-deploy-iapp',
+ text: 'Build and Deploy',
+ link: '/build-iapp/guides/build-&-deploy',
},
{
- text: 'Manage your iApps',
- link: '/build-iapp/guides/manage-iapp',
+ text: 'Manage Access',
+ link: '/build-iapp/guides/manage-access',
},
{
- text: 'Inputs and Outputs (types, differences, formats)',
+ text: 'Inputs and Outputs',
link: '/build-iapp/guides/inputs-and-outputs',
},
{
- text: 'Debugging Your iApp',
- link: '/build-iapp/guides/debugging-your-iapp',
- },
- {
- text: 'Using TDX (Trusted Execution) [EXPERIMENTAL]',
- link: '/build-iapp/guides/using-tdx-experimental',
+ text: 'Using TDX',
+ link: '/build-iapp/guides/using-tdx',
},
{
text: 'How to Get and Decrypt Results',
link: '/build-iapp/guides/how-to-get-and-decrypt-results',
},
+ {
+ text: 'Debugging',
+ link: '/build-iapp/guides/debugging',
+ },
],
},
{
@@ -392,9 +374,20 @@ export function getSidebar() {
link: '/build-iapp/iapp-generator/getting-started',
},
{
- text: 'Building Your iApp',
+ text: 'Building your iApp',
link: '/build-iapp/iapp-generator/building-your-iexec-app',
},
+ {
+ text: 'Deserialize ProtectedData',
+ link: '/build-iapp/iapp-generator/deserializer',
+ collapsed: true,
+ items: [
+ {
+ text: 'getValue',
+ link: '/build-iapp/iapp-generator/deserializer/getValue',
+ },
+ ],
+ },
],
},
],
@@ -410,11 +403,11 @@ export function getSidebar() {
text: 'π Guides',
items: [
{
- text: 'Different ways to execute an iApp',
+ text: 'Different Ways to Execute an iApp',
link: '/use-iapp/guides/different-ways-to-execute',
},
{
- text: 'Add inputs to the execution',
+ text: 'Add Inputs to the Execution',
link: '/use-iapp/guides/add-inputs-to-execution',
},
{
@@ -426,7 +419,7 @@ export function getSidebar() {
link: '/use-iapp/guides/find-iapps',
},
{
- text: 'How to pay the executions',
+ text: 'How to Pay the Executions',
link: '/use-iapp/guides/how-to-pay-executions',
},
],
@@ -435,11 +428,11 @@ export function getSidebar() {
text: 'π° How to Pay',
items: [
{
- text: 'How to Pay for Web3mail',
+ text: 'How to Pay for Web3Mail',
link: '/use-iapp/how-to-pay/how-to-pay-for-web3mail',
},
{
- text: 'How to Pay for Web3telegram',
+ text: 'How to Pay for Web3Telegram',
link: '/use-iapp/how-to-pay/how-to-pay-for-web3telegram',
},
{
diff --git a/README.md b/README.md
index 0bdfedf6..ea55c9b0 100644
--- a/README.md
+++ b/README.md
@@ -155,18 +155,11 @@ Fork this repository and ensure you're working on the `main` branch:
- Add link to the new explorer feature Asset_Types in the guide =>
`handle-schemas-dataset-types`
- Add link to remix for deploying whitelist
-- Move `manage-data/dataProtector/advanced/iApp` (Deserializer doc) in an other
- way to be more visible (may in build-iApp section)
- complete `use-iapp` section
-- complete `explorer` section
- Maybe split input and output in two diff sub section in build your iapp guide
- SGX vs TDX need review
- Explorer l'intΓ©gration de codeSpace
-- complete `build-iapp` section
- complete `Protocol`section
-- What about Bridge ?
-- Made a page on RLC
-- Add Dune dashboard
- Add a Development workflow
- Update context7 when doc will be deployed
- Check theGraph Images with design Team
@@ -174,3 +167,4 @@ Fork this repository and ensure you're working on the `main` branch:
- Add new section in `iexec-explorer.md` file to talk about: available chain on
the UI + SRLC/RLC on account section feature of the protocol
- Update or add design illustrations based on the new design system
+- Check how to pay guide to update with the launch on Arbitrum (RLC vs xRLC)
diff --git a/src/build-iapp/guides/build-&-deploy-iapp.md b/src/build-iapp/guides/build-&-deploy.md
similarity index 85%
rename from src/build-iapp/guides/build-&-deploy-iapp.md
rename to src/build-iapp/guides/build-&-deploy.md
index 27697166..1b1def7c 100644
--- a/src/build-iapp/guides/build-&-deploy-iapp.md
+++ b/src/build-iapp/guides/build-&-deploy.md
@@ -1,21 +1,24 @@
---
-title: Build and Deploy an iApp?
+title: Create and Deploy an iApp
description:
- How to build an confidential iexec application and deploy it on iexec protocol
+ How to create a confidential iExec application and deploy it on iExec protocol
---
-## iApp Generator: Your Development Tool
+# 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.
-- **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!
+- **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)
@@ -37,21 +40,13 @@ iapp deploy
Here are some real-world examples of iApps to help you understand how they work
in practice.
-**Email Notification iApp**
+### Email Notification iApp
This iApp lets you send updates to your contacts without ever seeing their email
addresses, privacy is preserved by design.
::: code-group
-```python [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
-```
-
```js [Node.js]
/* User runs: "Send updates to my contacts about my project" */
const contacts = loadProtectedData(); // User's protected contact list
@@ -61,15 +56,31 @@ contacts.forEach((contact) => {
// β Emails sent directly, you never see the addresses
```
+```python [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**
+### Oracle Update iApp
This iApp securely updates a price oracle using private trading data, ensuring
sensitive information stays confidential.
::: code-group
+```js [Node.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 [Python]
# User runs: "Update price oracle with my private trading data"
trading_data = load_protecteddata() # User's protected trading history
@@ -78,14 +89,6 @@ update_oracle_contract(average_price)
# β Oracle updated with real data, trading history stays private
```
-```js [Node.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
-```
-
:::
**Automated Transactions iApp**
@@ -95,16 +98,8 @@ financial information remains private.
::: code-group
-```python [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
-```
-
```js [Node.js]
-/* User runs: "Automate payments every month" */
+// User runs: "Automate payments every month"
const paymentInfo = loadProtectedData(); // User's payment details
for (let month = 0; month < 12; month++) {
processPayment(paymentInfo);
@@ -112,4 +107,12 @@ for (let month = 0; month < 12; month++) {
// β Payments processed, payment details stay private
```
+```python [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
+```
+
:::
diff --git a/src/build-iapp/guides/debugging-your-iapp.md b/src/build-iapp/guides/debugging.md
similarity index 97%
rename from src/build-iapp/guides/debugging-your-iapp.md
rename to src/build-iapp/guides/debugging.md
index 96815a3f..221fa3d4 100644
--- a/src/build-iapp/guides/debugging-your-iapp.md
+++ b/src/build-iapp/guides/debugging.md
@@ -1,10 +1,10 @@
---
-title: Debugging Your iApp
+title: Debugging your iApp
description:
Troubleshoot and optimize your iApp execution in the TEE environment
---
-# π Debugging Your iApp
+# π Debugging
**When your iApp doesn't work as expected, debugging in the TEE environment
requires specific techniques.** This guide helps you identify issues and
@@ -24,7 +24,7 @@ Understanding how your task progresses through the iExec network:
**Most failures happen during stages 2-4**
-## Monitoring Your Tasks
+## Monitoring your Tasks
### iExec Explorer
@@ -112,7 +112,7 @@ with open(f"{os.environ['IEXEC_OUT']}/computed.json", 'w') as f:
json.dump(computed, f)
```
-### β οΈ **Dataset type unmatching**
+### β οΈ **Dataset Type Unmatching**
- **Cause**: The dataset type specified in the frontend (protectData) does not
match with the dataset type specified in the iApp
diff --git a/src/build-iapp/guides/how-to-get-and-decrypt-results.md b/src/build-iapp/guides/how-to-get-and-decrypt-results.md
index 90fbbd18..33ea7021 100644
--- a/src/build-iapp/guides/how-to-get-and-decrypt-results.md
+++ b/src/build-iapp/guides/how-to-get-and-decrypt-results.md
@@ -146,7 +146,7 @@ result.zip
βββ metadata.json # Optional metadata
```
-### computed.json Structure
+### `computed.json` Structure
**Always present in every result**:
diff --git a/src/build-iapp/guides/inputs-and-outputs.md b/src/build-iapp/guides/inputs-and-outputs.md
index 9ae58597..794e6e84 100644
--- a/src/build-iapp/guides/inputs-and-outputs.md
+++ b/src/build-iapp/guides/inputs-and-outputs.md
@@ -403,7 +403,7 @@ result_data = {
with open(f"{iexec_out}/result.json", 'w') as f:
json.dump(result_data, f)
-# REQUIRED: Create computed.json metadata
+# REQUIRED: Create `computed.json` metadata
computed_metadata = {
"deterministic-output-path": f"{iexec_out}/result.json",
"execution-timestamp": "2024-01-15T10:30:00Z",
diff --git a/src/build-iapp/guides/manage-iapp.md b/src/build-iapp/guides/manage-access.md
similarity index 85%
rename from src/build-iapp/guides/manage-iapp.md
rename to src/build-iapp/guides/manage-access.md
index 18b36ca3..c121ca1e 100644
--- a/src/build-iapp/guides/manage-iapp.md
+++ b/src/build-iapp/guides/manage-access.md
@@ -3,7 +3,7 @@ title: App Access Control and Pricing
description: Control who can use your iApp and set pricing with app orders
---
-# π° App Access Control and Pricing
+# π° Manage Access
**Orders control who can use your iApp and under what conditions.** Once your
iApp is deployed with iApp Generator, you need to create app orders to make it
@@ -123,7 +123,7 @@ generated private key. You can use this existing private key to initialize your
wallet:
```bash
-# Extract the private key from your iexecconfig.json
+# Extract the private key from your `iexecconfig.json`
iexec wallet import
```
@@ -176,6 +176,44 @@ iexec order publish --app
Your iApp is now accessible according to the conditions you defined!
+## Managing Orders
+
+### View Published Orders
+
+Check active orders for your app:
+
+```bash
+iexec orderbook app
+```
+
+### Modify an Order
+
+To change conditions, create a new order with new parameters.
+
+### Cancel an Order
+
+Remove an order from the marketplace:
+
+```bash
+iexec order unpublish --app
+```
+
+Completely invalidate an order:
+
+```bash
+iexec order cancel --app
+```
+
+### π‘οΈ **Confidential App (TEE Required)**
+
+```json
+{
+ "appprice": "2000000000",
+ "volume": "500",
+ "tag": "0x0000000000000000000000000000000000000000000000000000000000000003"
+}
+```
+
## App Order Parameters
Here's the detailed description of each parameter:
@@ -247,76 +285,6 @@ restriction)
**Typical usage:** `"0x0000000000000000000000000000000000000000"` (open to all)
-## Managing Orders
-
-### View Published Orders
-
-Check active orders for your app:
-
-```bash
-iexec orderbook app
-```
-
-### Modify an Order
-
-To change conditions, create a new order with new parameters.
-
-### Cancel an Order
-
-Remove an order from the marketplace:
-
-```bash
-iexec order unpublish --app
-```
-
-Completely invalidate an order:
-
-```bash
-iexec order cancel --app
-```
-
-## Common Use Cases
-
-### π **Free and Open App**
-
-```json
-{
- "appprice": "0",
- "volume": "10000",
- "tag": "0x0000000000000000000000000000000000000000000000000000000000000000"
-}
-```
-
-### π° **Paid App (1 RLC per use)**
-
-```json
-{
- "appprice": "1000000000",
- "volume": "1000",
- "tag": "0x0000000000000000000000000000000000000000000000000000000000000003"
-}
-```
-
-### π **Private App (specific user only)**
-
-```json
-{
- "appprice": "0",
- "volume": "50",
- "requesterrestrict": "0xSpecificUserAddress"
-}
-```
-
-### π‘οΈ **Confidential App (TEE required)**
-
-```json
-{
- "appprice": "2000000000",
- "volume": "500",
- "tag": "0x0000000000000000000000000000000000000000000000000000000000000003"
-}
-```
-
## What's Next?
**Your iApp is now accessible with custom conditions!**
@@ -327,20 +295,8 @@ Next steps:
- **Adjust pricing**: Create new orders based on demand
- **Manage revenue**: Check your earnings with `iexec account show`
-### Explore More iExec Guides
-
-- **[Input and Outputs](/build_iapp/guides/inputs-and-outputs)** - Handle data
- in your iApps
-- **[Getting and Decrypting Results](/build_iapp/guides/how-to-get-and-decrypt-results)** -
- Process execution results
-- **[Debugging Your iApp](/build_iapp/guides/debugging-your-iapp)** -
- Troubleshoot your applications
-- **[Using TDX (Experimental)](/build_iapp/guides/using-tdx-experimental)** -
- Advanced TEE features
-
### Technical Deep Dive
-- **[SDK Deep Dive](/deep_dive/sdk)** - Advanced SDK concepts and usage
- **[iExec SDK Documentation](https://github.com/iExecBlockchainComputing/iexec-sdk)** -
Complete CLI reference
- **[Official Orders Documentation](https://protocol.docs.iex.ec/for-developers/advanced/manage-your-apporders)** -
diff --git a/src/build-iapp/guides/using-tdx-experimental.md b/src/build-iapp/guides/using-tdx.md
similarity index 100%
rename from src/build-iapp/guides/using-tdx-experimental.md
rename to src/build-iapp/guides/using-tdx.md
diff --git a/src/build-iapp/iapp-generator.md b/src/build-iapp/iapp-generator.md
index 03b6bcb6..b6a1d879 100644
--- a/src/build-iapp/iapp-generator.md
+++ b/src/build-iapp/iapp-generator.md
@@ -1,3 +1,11 @@
+---
+title: iApp Generator
+description:
+ Build privacy-first applications that run in secure TEE environments. Your
+ complete toolkit for creating, testing, and deploying confidential iApps on
+ the iExec network.
+---
+
# π€ iApp Generator
**Build privacy-first applications that run in secure TEE environments.** iApp
@@ -13,7 +21,7 @@ minutes, not months.
(iApps)** - applications that run inside **Trusted Execution Environments
(TEE)** for maximum privacy and security.
-### What You Can Build
+### What you Can Build
- **AI models** that process sensitive data privately
- **Data analysis** tools that protect user information
diff --git a/src/build-iapp/iapp-generator/advanced-creation.md b/src/build-iapp/iapp-generator/advanced-creation.md
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/build-iapp/iapp-generator/building-your-iexec-app.md b/src/build-iapp/iapp-generator/building-your-iexec-app.md
index e6390790..bfcc03bf 100644
--- a/src/build-iapp/iapp-generator/building-your-iexec-app.md
+++ b/src/build-iapp/iapp-generator/building-your-iexec-app.md
@@ -1,4 +1,11 @@
-# π§βπ Build Your iApp
+---
+title: Build Your iApp
+description:
+ Learn how to initialize, configure, and build your iExec application using the
+ iApp Generator CLI with step-by-step guidance.
+---
+
+# π§βπ Build your iApp
## π§° Initialize your iApp
@@ -7,7 +14,7 @@ guiding you through a step-by-step initialization process. This ensures your
iApp is correctly configured and compatible with iExecβs confidential computing
environment.
-### π Define Your Project
+### π Define your Project
Run:
diff --git a/src/manage-data/dataProtector/advanced/iApp/deserializer.md b/src/build-iapp/iapp-generator/deserializer.md
similarity index 90%
rename from src/manage-data/dataProtector/advanced/iApp/deserializer.md
rename to src/build-iapp/iapp-generator/deserializer.md
index b3af9446..11c61f32 100644
--- a/src/manage-data/dataProtector/advanced/iApp/deserializer.md
+++ b/src/build-iapp/iapp-generator/deserializer.md
@@ -1,4 +1,12 @@
-# DataProtector Deserializer
+---
+title: Deserialize a ProtectedData
+description:
+ Learn how to deserialize protected data in your iApp using the
+ @iexec/dataprotector-deserializer utility package for accessing authorized
+ data.
+---
+
+# Deserialize a ProtectedData
If you want to build your own iApp (iExec TEE Dapp), you may need to access
protected data that your wallet and iApp are authorized to use. To achieve this,
diff --git a/src/manage-data/dataProtector/advanced/iApp/deserializer/getValue.md b/src/build-iapp/iapp-generator/deserializer/getValue.md
similarity index 90%
rename from src/manage-data/dataProtector/advanced/iApp/deserializer/getValue.md
rename to src/build-iapp/iapp-generator/deserializer/getValue.md
index 7ecf3485..4fbafa27 100644
--- a/src/manage-data/dataProtector/advanced/iApp/deserializer/getValue.md
+++ b/src/build-iapp/iapp-generator/deserializer/getValue.md
@@ -1,3 +1,10 @@
+---
+title: getValue
+description:
+ Method to deserialize a value given a provided type using the
+ IExecDataProtectorDeserializer.
+---
+
# getValue
Method to deserialize a value given a provided type.
@@ -56,6 +63,6 @@ const value1 = await deserializer.getValue(
);
```
-## Return value
+## Return Value
The recovered original value.
diff --git a/src/build-iapp/iapp-generator/getting-started.md b/src/build-iapp/iapp-generator/getting-started.md
index 2458db91..6d381e56 100644
--- a/src/build-iapp/iapp-generator/getting-started.md
+++ b/src/build-iapp/iapp-generator/getting-started.md
@@ -1,3 +1,10 @@
+---
+title: Getting Started
+description:
+ Learn how to set up and start using the iApp Generator with prerequisites,
+ installation, and first steps.
+---
+
# π Getting Started
## π Prerequisites
diff --git a/src/build-iapp/iapp-generator/protocol-level-guides.md b/src/build-iapp/iapp-generator/protocol-level-guides.md
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/build-iapp/iapp-generator/references.md b/src/build-iapp/iapp-generator/references.md
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/build-iapp/what-is-iapp.md b/src/build-iapp/what-is-iapp.md
index ff132374..fc1f23f9 100644
--- a/src/build-iapp/what-is-iapp.md
+++ b/src/build-iapp/what-is-iapp.md
@@ -1,16 +1,16 @@
---
-title: What Is an iApp?
+title: What is an iApp?
description: Privacy-first applications that run on decentralized infrastructure
---
-# π What Is an iApp?
+# π What is an iApp?
An iExec Application (iApp) is your regular application code (Python script, AI
-model, data processor) that can securely process protected data (created by
+model, data processor, ...) that can securely process protected data (created by
[DataProtector](/manage-data/dataProtector)) inside a confidential computing
environment called TEE (a Trusted Execution Environment).
-## Why iApps Matter?
+## Why iApps Matter ?
iApps let you process sensitive data while keeping it private and secure.
@@ -61,7 +61,7 @@ they will.**
-## How It Works
+## How it Works
Your code runs in a Trusted Execution Environment (TEE), a secure area inside
specific processors (Intel SGX/TDX chipset). Everything that happens there stays
@@ -83,27 +83,19 @@ to the person running the app.
3
- Protected data transferred to Trusted Execution Environment (TEE)
+ User builds and deploys a confidential iApp that processes protected data
4
- Your iApp runs inside TEE and processes protected data
-
-
- 5
- Confidential computing performed while maintaining privacy
+ Run the iApp with the corresponding protected data, performing confidential computing
-
-
Nobody sees the raw data except your code running inside the secure enclave.
-
-
Your iApp can send emails, update contracts, make transactions, trigger
notifications - anything your code needs to do with the protected data. This
-isn't about trust - it's about **mathematical guarantees** that privacy is
-preserved.
+isn't about trust - it's about **cryptographic and hardware-enforced
+guarantees** that privacy is preserved within the TEE execution environment.
## Use Cases
diff --git a/src/index.md b/src/index.md
index c27e2008..5c728c45 100644
--- a/src/index.md
+++ b/src/index.md
@@ -3,9 +3,9 @@
layout: home
hero:
- name: 'Build on iExec Privacy Layer'
+ name: 'Privacy Made Easy'
tagline:
- 'Build decentralized applications that combine ownership, privacy, and
+ 'Build decentralized applications that combine governance, privacy, and
monetization.'
actions:
- theme: brand
diff --git a/src/manage-data/dataProtector.md b/src/manage-data/dataProtector.md
index b6a59b7d..e352f572 100644
--- a/src/manage-data/dataProtector.md
+++ b/src/manage-data/dataProtector.md
@@ -1,6 +1,7 @@
---
+title: DataProtector
description:
- Discover DataProtector, iExecβs secure data management solution. Encrypt,
+ Discover DataProtector, iExec's secure data management solution. Encrypt,
share, and monetize your data with DataProtector Core and Sharing modules, all
powered by blockchain technology.
---
@@ -26,7 +27,7 @@ ownership of protected data, enabling collaboration and potential **monetization
opportunities**. This module empowers users to share and manage their data
securely, fostering innovation and collaboration in the digital realm.
-## Which one to use?
+## Which One to Use?
With `DataProtector Core`, you can **grant access** to your protected data **to
a specific user**.
diff --git a/src/manage-data/dataProtector/advanced/advanced-configuration.md b/src/manage-data/dataProtector/advanced/advanced-configuration.md
index 85c146e4..bbb23d20 100644
--- a/src/manage-data/dataProtector/advanced/advanced-configuration.md
+++ b/src/manage-data/dataProtector/advanced/advanced-configuration.md
@@ -1,11 +1,12 @@
---
+title: Advanced Configuration
description:
Explore advanced configuration options for the IExecDataProtector constructor
in the iExec DataProtector SDK. Customize Ethereum contract addresses,
subgraph URLs, IPFS nodes, and more for specific needs.
---
-# Advanced configuration
+# Advanced Configuration
The `IExecDataProtector` constructor accepts additional configuration
parameters. As these parameters are very specific, they are not needed for a
diff --git a/src/manage-data/dataProtector/advanced/apps-whitelist.md b/src/manage-data/dataProtector/advanced/apps-whitelist.md
index c6d5040e..4fbc8a82 100644
--- a/src/manage-data/dataProtector/advanced/apps-whitelist.md
+++ b/src/manage-data/dataProtector/advanced/apps-whitelist.md
@@ -1,4 +1,5 @@
---
+title: Apps Whitelist
description:
Understand the Apps Whitelist mechanism for consuming protected data in the
iExec DataProtector Sharing module. Learn about the Trusted Execution
@@ -30,7 +31,7 @@ The story goes as follow:
`app` parameter). This chosen application must be in the whitelist
defined by the collection owner.
-## Protected data delivery dApp
+## Protected Data Delivery iApp
Built for the needs of
[Content Creator usecase-demo](/overview/use-case-demo/content-creator.html),
diff --git a/src/manage-data/dataProtector/advanced/apps-whitelist/addAppToAddOnlyAppWhitelist.md b/src/manage-data/dataProtector/advanced/apps-whitelist/addAppToAddOnlyAppWhitelist.md
index c95f8621..e56acb39 100644
--- a/src/manage-data/dataProtector/advanced/apps-whitelist/addAppToAddOnlyAppWhitelist.md
+++ b/src/manage-data/dataProtector/advanced/apps-whitelist/addAppToAddOnlyAppWhitelist.md
@@ -1,3 +1,10 @@
+---
+title: addAppToAddOnlyAppWhitelist
+description:
+ Method to add an app (iExec TEE dApp) into the AddOnlyAppWhitelist for secure
+ data access control.
+---
+
# addAppToAddOnlyAppWhitelist
Method to add an app (iExec TEE dApp) into the `AddOnlyAppWhitelist`.
@@ -82,7 +89,7 @@ const isAddedToAddAppToAddOnlyAppWhitelist =
});
```
-## Return value
+## Return Value
```ts twoslash
import { type SuccessWithTransactionHash } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/advanced/apps-whitelist/createAddOnlyAppWhitelist.md b/src/manage-data/dataProtector/advanced/apps-whitelist/createAddOnlyAppWhitelist.md
index 7f1c9e88..567f287a 100644
--- a/src/manage-data/dataProtector/advanced/apps-whitelist/createAddOnlyAppWhitelist.md
+++ b/src/manage-data/dataProtector/advanced/apps-whitelist/createAddOnlyAppWhitelist.md
@@ -1,3 +1,10 @@
+---
+title: createAddOnlyAppWhitelist
+description:
+ Method to create an AddOnlyAppWhitelist for controlling app access. The caller
+ becomes the owner by default, with transferable ownership as an ERC721.
+---
+
# createAddOnlyAppWhitelist
Method to create an `AddOnlyAppWhitelist`. By default, the owner will be the
@@ -19,7 +26,7 @@ const isAddedToAddAppToAddOnlyAppWhitelist =
await dataProtectorSharing.createAddOnlyAppWhitelist();
```
-## Return value
+## Return Value
```ts twoslash
import { type CreateAppWhitelistResponse } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/advanced/apps-whitelist/getUserAddOnlyAppWhitelist.md b/src/manage-data/dataProtector/advanced/apps-whitelist/getUserAddOnlyAppWhitelist.md
index 34262207..9472a2b3 100644
--- a/src/manage-data/dataProtector/advanced/apps-whitelist/getUserAddOnlyAppWhitelist.md
+++ b/src/manage-data/dataProtector/advanced/apps-whitelist/getUserAddOnlyAppWhitelist.md
@@ -1,3 +1,10 @@
+---
+title: getUserAddOnlyAppWhitelist
+description:
+ Method to get AddOnlyAppWhitelist with filtering by user ethereum address for
+ app access control management.
+---
+
# getUserAddOnlyAppWhitelist
Method to get `AddOnlyAppWhitelist`, you can filter by user ethereum address.
@@ -44,7 +51,7 @@ const allUserAddOnlyAppWhitelist =
});
```
-## Return value
+## Return Value
```ts twoslash
import { type GetUserAppWhitelistResponse } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/advanced/dps-smart-contract.md b/src/manage-data/dataProtector/advanced/dps-smart-contract.md
index ae61313c..dacaa0ed 100644
--- a/src/manage-data/dataProtector/advanced/dps-smart-contract.md
+++ b/src/manage-data/dataProtector/advanced/dps-smart-contract.md
@@ -1,11 +1,12 @@
---
+title: DataProtector Sharing Smart Contracts
description:
Learn about the DataProtector Sharing smart contract for managing and sharing
protected data via collections, subscriptions, rentals, and sales. Explore the
- Solidity code and features in iExecβs implementation.
+ Solidity code and features in iExec's implementation.
---
-# DataProtector Sharing smart contract
+# DataProtector Sharing Smart Contracts
A specific smart contract has been developed to support all of the "Sharing"
module features.
diff --git a/src/manage-data/dataProtector/advanced/iApp.md b/src/manage-data/dataProtector/advanced/iApp.md
deleted file mode 100644
index 321920b2..00000000
--- a/src/manage-data/dataProtector/advanced/iApp.md
+++ /dev/null
@@ -1,29 +0,0 @@
----
-description:
- Learn how to build your own iApp with the iExec TEE framework, supporting
- languages like Go, Rust, Python, and JavaScript for decentralized,
- privacy-preserving applications.
----
-
-# iApp
-
-Building your own iApp is essential if you want to utilize our development tools
-to their full potential.
-
-### What is an iApp?
-
-An iApp is an iExec TEE decentralized application that operates within a
-decentralized infrastructure based on the SCONE TEE framework. This framework
-ensures full privacy during the execution of the Dapp.
-
-### In which languages can I build my iApp?
-
-It depends on the SCONE TEE framework. Currently, you can use Go, Rust, Python,
-and JavaScript.
-
-### How to build my iApp?
-
-To build your iApp, you can follow the
-[protocol documentation](https://protocol.docs.iex.ec/for-developers/your-first-app).
-We are continuously working on aspects to streamline and simplify your iApp
-development experience.
diff --git a/src/manage-data/dataProtector/dataProtectorCore.md b/src/manage-data/dataProtector/dataProtectorCore.md
index afdbf742..f87f0f49 100644
--- a/src/manage-data/dataProtector/dataProtectorCore.md
+++ b/src/manage-data/dataProtector/dataProtectorCore.md
@@ -1,4 +1,5 @@
---
+title: DataProtector Core
description:
Learn how DataProtector Core gives developers powerful tools to encrypt data,
manage ownership with NFTs, and control access using smart contracts and
diff --git a/src/manage-data/dataProtector/dataProtectorCore/getGrantedAccess.md b/src/manage-data/dataProtector/dataProtectorCore/getGrantedAccess.md
index 0049e67b..2ee47134 100644
--- a/src/manage-data/dataProtector/dataProtectorCore/getGrantedAccess.md
+++ b/src/manage-data/dataProtector/dataProtectorCore/getGrantedAccess.md
@@ -1,6 +1,7 @@
---
+title: getGrantedAccess
description:
- Retrieve all granted access details for a protected data object with iExecβs
+ Retrieve all granted access details for a protected data object with iExec's
getGrantedAccess method. Filter access by user, application, or both, and
manage access with pagination.
---
diff --git a/src/manage-data/dataProtector/dataProtectorCore/getProtectedData.md b/src/manage-data/dataProtector/dataProtectorCore/getProtectedData.md
index dda061e3..a25f42ae 100644
--- a/src/manage-data/dataProtector/dataProtectorCore/getProtectedData.md
+++ b/src/manage-data/dataProtector/dataProtectorCore/getProtectedData.md
@@ -1,4 +1,5 @@
---
+title: getProtectedData
description:
Retrieve all protected data for a specific owner or schema with the
getProtectedData method in iExec DataProtector. Easily access encrypted data
@@ -183,7 +184,7 @@ const listProtectedData = await dataProtectorCore.getProtectedData({
});
```
-## Return value
+## Return Value
```ts twoslash
import { type ProtectedData } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorCore/getResultFromCompletedTask.md b/src/manage-data/dataProtector/dataProtectorCore/getResultFromCompletedTask.md
index 6b3c3d8b..121b5152 100644
--- a/src/manage-data/dataProtector/dataProtectorCore/getResultFromCompletedTask.md
+++ b/src/manage-data/dataProtector/dataProtectorCore/getResultFromCompletedTask.md
@@ -1,6 +1,7 @@
---
+title: getResultFromCompletedTask
description:
- Retrieve the result of a completed task with iExecβs
+ Retrieve the result of a completed task with iExec's
getResultFromCompletedTask method. Easily access task outcomes by providing
the task ID.
---
@@ -122,7 +123,7 @@ You can expect this callback function to be called with the following titles:
Once with `isDone: false`, and then with `isDone: true`
-## Return value
+## Return Value
```ts twoslash
import { type GetResultFromCompletedTaskResponse } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorCore/grantAccess.md b/src/manage-data/dataProtector/dataProtectorCore/grantAccess.md
index 78c0c34f..cfa8e79f 100644
--- a/src/manage-data/dataProtector/dataProtectorCore/grantAccess.md
+++ b/src/manage-data/dataProtector/dataProtectorCore/grantAccess.md
@@ -1,4 +1,5 @@
---
+title: grantAccess
description:
Grant secure access to encrypted data with iExec's grantAccess method.
Authorize specific applications or users to process protected data, with
@@ -239,7 +240,7 @@ You can expect this callback function to be called with the following titles:
Once with `isDone: false`, and then with `isDone: true`
-## Return value
+## Return Value
```ts twoslash
import { type GrantedAccess } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorCore/processProtectedData.md b/src/manage-data/dataProtector/dataProtectorCore/processProtectedData.md
index 30e124d9..de1ca5b0 100644
--- a/src/manage-data/dataProtector/dataProtectorCore/processProtectedData.md
+++ b/src/manage-data/dataProtector/dataProtectorCore/processProtectedData.md
@@ -1,8 +1,9 @@
---
+title: processProtectedData
description:
- Process encrypted data securely with iExecβs processProtectedData method. Use
+ Process encrypted data securely with iExec's processProtectedData method. Use
authorized applications to process protected datasets while maintaining data
- privacy and security
+ privacy and security.
---
# processProtectedData
@@ -438,7 +439,7 @@ You can expect this callback function to be called with the following titles:
Once with `isDone: false`, and then with `isDone: true`
-## Return value
+## Return Value
```ts twoslash
import { type ProcessProtectedDataResponse } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorCore/protectData.md b/src/manage-data/dataProtector/dataProtectorCore/protectData.md
index 4d0b948d..e5e775e4 100644
--- a/src/manage-data/dataProtector/dataProtectorCore/protectData.md
+++ b/src/manage-data/dataProtector/dataProtectorCore/protectData.md
@@ -1,4 +1,5 @@
---
+title: protectData
description:
Use the protectData method from iExec DataProtector to encrypt user data
client-side and ensure full privacy. Easily secure emails, credentials, or
@@ -302,7 +303,7 @@ You can expect this callback function to be called with the following titles:
Once with `isDone: false`, and then with `isDone: true`
-## Return value
+## Return Value
```ts twoslash
import type {
@@ -426,7 +427,7 @@ You can access your encrypted IPFS data with the link:
:::
-## Created protected data
+## Created Protected Data
To further check your data was correctly created, you can inspect it on the
[iExec explorer](https://explorer.iex.ec/).
diff --git a/src/manage-data/dataProtector/dataProtectorCore/revokeAllAccess.md b/src/manage-data/dataProtector/dataProtectorCore/revokeAllAccess.md
index 47a40132..becf31c3 100644
--- a/src/manage-data/dataProtector/dataProtectorCore/revokeAllAccess.md
+++ b/src/manage-data/dataProtector/dataProtectorCore/revokeAllAccess.md
@@ -1,6 +1,7 @@
---
+title: revokeAllAccess
description:
- Revoke all or specific access permissions to protected data with iExecβs
+ Revoke all or specific access permissions to protected data with iExec's
revokeAllAccess method. Efficiently manage data security by removing access
from users or smart contract.
---
@@ -133,7 +134,7 @@ You can expect this callback function to be called with the following titles:
Once with `isDone: false`, and then with `isDone: true`
-## Result
+## Return Value
```ts twoslash
import { type RevokedAccess } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorCore/revokeOneAccess.md b/src/manage-data/dataProtector/dataProtectorCore/revokeOneAccess.md
index 503cfeab..866de9fe 100644
--- a/src/manage-data/dataProtector/dataProtectorCore/revokeOneAccess.md
+++ b/src/manage-data/dataProtector/dataProtectorCore/revokeOneAccess.md
@@ -1,6 +1,7 @@
---
+title: revokeOneAccess
description:
- Revoke specific access permissions to protected data with iExecβs
+ Revoke specific access permissions to protected data with iExec's
revokeOneAccess method. Manage and remove access granted to users or
applications through blockchain transactions.
---
@@ -81,7 +82,7 @@ data).
:::
-## Result value
+## Result Value
```ts twoslash
import { type RevokedAccess } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorCore/transferOwnership.md b/src/manage-data/dataProtector/dataProtectorCore/transferOwnership.md
index 942ddbb6..9ce7f33b 100644
--- a/src/manage-data/dataProtector/dataProtectorCore/transferOwnership.md
+++ b/src/manage-data/dataProtector/dataProtectorCore/transferOwnership.md
@@ -1,6 +1,7 @@
---
+title: transferOwnership
description:
- Transfer ownership of protected data to a new owner with iExecβs
+ Transfer ownership of protected data to a new owner with iExec's
transferOwnership method. Securely update data ownership and automatically
revoke previous access permissions.
---
@@ -75,7 +76,7 @@ const transferResponse = await dataProtectorCore.transferOwnership({
});
```
-## Return value
+## Return Value
```ts twoslash
import { type TransferResponse } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing.md b/src/manage-data/dataProtector/dataProtectorSharing.md
index 1ed51eb1..086fd6a6 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing.md
@@ -1,4 +1,5 @@
---
+title: DataProtector Sharing
description:
Distribute and monetize your protected data effortlessly with DataProtector
Sharing. Use smart contracts to manage access, rent, or sell data while
@@ -22,7 +23,7 @@ methods allow interaction with the protected data. The application designer uses
these methods to securely retrieve data from IPFS and decrypt it on the client
side. This ensures only the consumer gains access to the data.
-## How does it work?
+## How Does it Work?
The user's protected data is managed by a special Data Sharing smart contract.
This smart contract enforces the user's desired sharing paradigm. Protected data
@@ -42,7 +43,7 @@ rents access to a video clip, for example, even if the owner of the video clip
removes the rental option, the renter maintains their access for the duration of
the rental period.
-## How does this differ from `DataProtector Core`?
+## How Does this Differ from `DataProtector Core`?
With `DataProtector Core` you must grant each consumer individual access to your
protected data. This has several prerequisites:
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/collection.md b/src/manage-data/dataProtector/dataProtectorSharing/collection.md
index 5cacbde5..55921734 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/collection.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/collection.md
@@ -1,11 +1,12 @@
---
+title: Data Sharing - Collection Methods
description:
- Organize your protected data into collections with iExecβs Data Sharing
+ Organize your protected data into collections with iExec's Data Sharing
module. Choose distribution options like renting, free access, subscription,
or selling to control how your data is shared and monetized.
---
-# Data sharing - Collection methods
+# Data Sharing - Collection Methods
A collection is a way to group protected data for sharing by the Data Sharing
module. The Data Sharing smart contract operates on data contained within a
@@ -15,7 +16,7 @@ diagram illustrates all the options for protected data within a collection:

-## Distribution options
+## Distribution Options
The distribution choice impacts the visibility of the protected data when a
potential consumer is browsing the collection. Inside a collection, a data owner
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/collection/addToCollection.md b/src/manage-data/dataProtector/dataProtectorSharing/collection/addToCollection.md
index 50133e38..05ccde21 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/collection/addToCollection.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/collection/addToCollection.md
@@ -1,4 +1,5 @@
---
+title: addToCollection
description:
Transfer a protected data to one of your collections in the Data Sharing smart
contract. The method approves the contract to manage the data and adds it to
@@ -156,7 +157,7 @@ You can expect this callback function to be called with the following titles:
Once with `isDone: false`, and then with `isDone: true`
-## Return value
+## Return Value
```ts twoslash
import { type SuccessWithTransactionHash } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/collection/createCollection.md b/src/manage-data/dataProtector/dataProtectorSharing/collection/createCollection.md
index 1979b670..9f48e64e 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/collection/createCollection.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/collection/createCollection.md
@@ -1,6 +1,7 @@
---
+title: createCollection
description:
- Create a new NFT collection with iExecβs createCollection method. Organize and
+ Create a new NFT collection with iExec's createCollection method. Organize and
manage your protected data for seamless distribution and monetization through
DataProtector Sharing.
---
@@ -28,7 +29,7 @@ const dataProtectorSharing = new IExecDataProtectorSharing(web3Provider);
const createCollectionResult = await dataProtectorSharing.createCollection();
```
-## Return value
+## Return Value
```ts twoslash
import { type CreateCollectionResponse } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/collection/removeCollection.md b/src/manage-data/dataProtector/dataProtectorSharing/collection/removeCollection.md
index 3c394a12..64a24b3f 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/collection/removeCollection.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/collection/removeCollection.md
@@ -1,4 +1,5 @@
---
+title: removeCollection
description:
Remove a collection from the Data Sharing smart contract by burning its
associated NFT. Transfer the NFT to the zero address and permanently remove
@@ -60,7 +61,7 @@ const { txHash } = await dataProtectorSharing.removeCollection({
});
```
-## Return value
+## Return Value
```ts twoslash
import { type SuccessWithTransactionHash } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/collection/removeProtectedDataFromCollection.md b/src/manage-data/dataProtector/dataProtectorSharing/collection/removeProtectedDataFromCollection.md
index f4fc38cc..fde983da 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/collection/removeProtectedDataFromCollection.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/collection/removeProtectedDataFromCollection.md
@@ -1,4 +1,5 @@
---
+title: removeProtectedDataFromCollection
description:
Remove a protected data from one of your collections in the Data Sharing smart
contract. This method transfers the ownership of the protected data back to
@@ -66,7 +67,7 @@ const { txHash } = await dataProtectorSharing.removeProtectedDataFromCollection(
);
```
-## Return value
+## Return Value
```ts twoslash
import { type SuccessWithTransactionHash } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/consume/consumeProtectedData.md b/src/manage-data/dataProtector/dataProtectorSharing/consume/consumeProtectedData.md
index 9ae257f5..944a7198 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/consume/consumeProtectedData.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/consume/consumeProtectedData.md
@@ -1,4 +1,5 @@
---
+title: consumeProtectedData
description:
Consume protected data in iExec by visualizing or downloading it. This method
involves generating RSA keys, interacting with iExec's Secret Management
@@ -309,7 +310,7 @@ You can expect this callback function to be called with the following titles:
'CONSUME_RESULT_DECRYPT';
```
-## Return value
+## Return Value
```ts twoslash
import { type ConsumeProtectedDataResponse } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/read/getCollectionOwners.md b/src/manage-data/dataProtector/dataProtectorSharing/read/getCollectionOwners.md
index 556e5f5a..f8bc117b 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/read/getCollectionOwners.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/read/getCollectionOwners.md
@@ -1,3 +1,10 @@
+---
+title: getCollectionOwners
+description:
+ Method to get all collection owners with results ordered by creation timestamp
+ in descending order.
+---
+
# getCollectionOwners
Method to get all collection owners.
@@ -45,7 +52,7 @@ const collectionOwners = await dataProtectorSharing.getCollectionOwners({
});
```
-## Return value
+## Return Value
```ts twoslash
import type { GetCollectionOwnersResponse } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/read/getCollectionSubscriptions.md b/src/manage-data/dataProtector/dataProtectorSharing/read/getCollectionSubscriptions.md
index a61391b0..40f15f26 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/read/getCollectionSubscriptions.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/read/getCollectionSubscriptions.md
@@ -1,4 +1,5 @@
---
+title: getCollectionSubscriptions
description:
Fetch all subscriptions for a specific collection or user in iExec. Get
detailed information about subscription activity based on collection ID.
@@ -92,7 +93,7 @@ const userRentals = await dataProtectorSharing.getCollectionSubscriptions({
});
```
-## Return value
+## Return Value
```ts twoslash
import { type GetCollectionSubscriptionsResponse } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/read/getCollectionsByOwner.md b/src/manage-data/dataProtector/dataProtectorSharing/read/getCollectionsByOwner.md
index 4820f2bf..06970e70 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/read/getCollectionsByOwner.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/read/getCollectionsByOwner.md
@@ -1,3 +1,10 @@
+---
+title: getCollectionsByOwner
+description:
+ Method to get all collections for a specific user with filtering and
+ pagination options.
+---
+
# getCollectionsByOwner
Method to get all collections for a specific user.
@@ -63,7 +70,7 @@ const userCollectionsWithAllProtectedData =
});
```
-## Return value
+## Return Value
```ts twoslash
import type { GetCollectionsByOwnerResponse } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/read/getProtectedDataInCollections.md b/src/manage-data/dataProtector/dataProtectorSharing/read/getProtectedDataInCollections.md
index 758309a6..1e77e275 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/read/getProtectedDataInCollections.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/read/getProtectedDataInCollections.md
@@ -1,4 +1,5 @@
---
+title: getProtectedDataInCollections
description:
Retrieve protected data from collections in iExec. Each protected data can
belong to only one collection at a time, with results ordered by creation
@@ -211,7 +212,7 @@ const protectedData = await dataProtectorSharing.getProtectedDataInCollections({
});
```
-## Return value
+## Return Value
```ts twoslash
import type { GetProtectedDataInCollectionsResponse } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/read/getProtectedDataPricingParams.md b/src/manage-data/dataProtector/dataProtectorSharing/read/getProtectedDataPricingParams.md
index 365bc803..68e53d18 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/read/getProtectedDataPricingParams.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/read/getProtectedDataPricingParams.md
@@ -1,7 +1,9 @@
---
+title: getProtectedDataPricingParams
description:
- Get all distribution parameters for a protected data in iExec. Retrieve
- detailed pricing information for a specific protected data using its address.
+ Get pricing parameters for renting a specific protected data in iExec.
+ Retrieve rental price and duration to determine the cost and terms for data
+ access.
---
# getProtectedDataPricingParams
@@ -50,7 +52,7 @@ const pricingParams = await dataProtectorSharing.getProtectedDataPricingParams({
});
```
-## Return value
+## Return Value
```ts twoslash
import type { GetProtectedDataPricingParamsResponse } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/read/getRentals.md b/src/manage-data/dataProtector/dataProtectorSharing/read/getRentals.md
index 0d5587f7..7fe042ce 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/read/getRentals.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/read/getRentals.md
@@ -1,4 +1,5 @@
---
+title: getRentals
description:
Retrieve all rentals for a specific protected data or user in iExec. Access
detailed rental information based on the protected data address.
@@ -89,7 +90,7 @@ const userRentals = await dataProtectorSharing.getRentals({
});
```
-## Return value
+## Return Value
```ts twoslash
import { type GetRentalsResponse } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/renting.md b/src/manage-data/dataProtector/dataProtectorSharing/renting.md
index 69b54ba7..c6597a68 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/renting.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/renting.md
@@ -1,4 +1,5 @@
---
+title: Data Sharing - Renting
description:
Renting options for distributing protected data allow consumers to access data
for a set price and duration. The Data Sharing smart contract ensures renter
@@ -6,7 +7,7 @@ description:
terms, even if modified by the owner.
---
-# Data sharing - Renting
+# Data Sharing - Renting
Rental agreements are one of the options given for distributing a collection
owner's protected data. A rental agreement has the following attributes:
@@ -21,14 +22,14 @@ This is a one-time up-front cost.
The collection owner allows the renter access to the data for a set period of
time.
-## Renter protection
+## Renter Protection
The Data Sharing smart contract ensures the renter maintains access for the
duration of their rental term. Once the rental term is up, the renter loses
access to the protected data. This assurance is critical to the renting paradigm
to ensure trust between the data owner and the renter.
-## Modifying rental terms
+## Modifying Rental Terms
The collection owner has a few options once they list protected data for rent:
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/renting/removeProtectedDataFromRenting.md b/src/manage-data/dataProtector/dataProtectorSharing/renting/removeProtectedDataFromRenting.md
index cd9b85d3..7bc1b923 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/renting/removeProtectedDataFromRenting.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/renting/removeProtectedDataFromRenting.md
@@ -1,4 +1,5 @@
---
+title: removeProtectedDataFromRenting
description:
The removeProtectedDataFromRenting method allows the collection owner to
remove a protected data item from being rented. Active rentals will still be
@@ -56,7 +57,7 @@ const notForRentingAnymoreResult =
});
```
-## Return value
+## Return Value
```ts twoslash
import { type SuccessWithTransactionHash } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/renting/rentProtectedData.md b/src/manage-data/dataProtector/dataProtectorSharing/renting/rentProtectedData.md
index 8b2f807d..d717bfbb 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/renting/rentProtectedData.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/renting/rentProtectedData.md
@@ -1,4 +1,5 @@
---
+title: rentProtectedData
description:
The rentProtectedData method allows you to rent a protected data item by
specifying the price and duration. If the parameters don't match the current
@@ -129,7 +130,7 @@ To get the renting duration of the given protected data, you can use
:::
-## Return value
+## Return Value
```ts twoslash
import { type SuccessWithTransactionHash } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/renting/setProtectedDataRentingParams.md b/src/manage-data/dataProtector/dataProtectorSharing/renting/setProtectedDataRentingParams.md
index 7e5a22f0..52cffaad 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/renting/setProtectedDataRentingParams.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/renting/setProtectedDataRentingParams.md
@@ -1,4 +1,5 @@
---
+title: setProtectedDataRentingParams
description:
The setProtectedDataRentingParams method allows you to set or update the
renting parameters (price and duration) for a protected data item. If the data
@@ -107,7 +108,7 @@ const setForRentingResult =
});
```
-## Return value
+## Return Value
```ts twoslash
import { type SuccessWithTransactionHash } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/renting/setProtectedDataToRenting.md b/src/manage-data/dataProtector/dataProtectorSharing/renting/setProtectedDataToRenting.md
index f70b456f..c430fbfb 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/renting/setProtectedDataToRenting.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/renting/setProtectedDataToRenting.md
@@ -1,4 +1,5 @@
---
+title: setProtectedDataToRenting
description:
The setProtectedDataToRenting method allows a protected data item to be listed
for rent. This method sets the price and duration for future rentals. If the
@@ -108,7 +109,7 @@ const setForRentingResult =
});
```
-## Return value
+## Return Value
```ts twoslash
import { type SuccessWithTransactionHash } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/selling.md b/src/manage-data/dataProtector/dataProtectorSharing/selling.md
index 87de9d03..63f377ec 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/selling.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/selling.md
@@ -1,4 +1,11 @@
-# Data sharing - Selling
+---
+title: Data Sharing - Selling
+description:
+ Learn how to list protected data for sale, transfer ownership permanently
+ through blockchain transactions, and manage data listing operations.
+---
+
+# Data Sharing - Selling
The owner of protected data may list the data for sale. Upon completion of a
sale, ownership of the protected data transfers to the buyer. This is a
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/selling/buyProtectedData.md b/src/manage-data/dataProtector/dataProtectorSharing/selling/buyProtectedData.md
index b5a09233..7a8bd0c9 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/selling/buyProtectedData.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/selling/buyProtectedData.md
@@ -1,4 +1,5 @@
---
+title: buyProtectedData
description:
Allows a user to purchase protected data that is listed for sale. Upon
successful purchase, the buyer gains full ownership and can distribute or keep
@@ -154,7 +155,7 @@ For more details on how to create and manage appsWhitelist, see
:::
-## Return value
+## Return Value
```ts twoslash
import { type SuccessWithTransactionHash } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/selling/removeProtectedDataForSale.md b/src/manage-data/dataProtector/dataProtectorSharing/selling/removeProtectedDataForSale.md
index 345f19e9..73b7b71a 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/selling/removeProtectedDataForSale.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/selling/removeProtectedDataForSale.md
@@ -1,3 +1,10 @@
+---
+title: removeProtectedDataForSale
+description:
+ Method to remove a protected data from sale listing, preventing further
+ purchase transactions.
+---
+
# removeProtectedDataForSale
Method to remove a protected data for sale.
@@ -46,7 +53,7 @@ const notForSaleAnymoreResult =
});
```
-## Return value
+## Return Value
```ts twoslash
import { type SuccessWithTransactionHash } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/selling/setProtectedDataForSale.md b/src/manage-data/dataProtector/dataProtectorSharing/selling/setProtectedDataForSale.md
index 43e57433..7d0081d9 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/selling/setProtectedDataForSale.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/selling/setProtectedDataForSale.md
@@ -1,4 +1,5 @@
---
+title: setProtectedDataForSale
description:
Allows a data owner to list their protected data for sale by setting a price.
Upon successful sale, ownership is transferred to the buyer, who can choose
@@ -79,7 +80,7 @@ const setForSaleResult = await dataProtectorSharing.setProtectedDataForSale({
});
```
-## Return value
+## Return Value
```ts twoslash
import { type SuccessWithTransactionHash } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/subscription.md b/src/manage-data/dataProtector/dataProtectorSharing/subscription.md
index 22e82706..206420ff 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/subscription.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/subscription.md
@@ -1,11 +1,12 @@
---
+title: Data Sharing - Subscription
description:
Learn how to manage subscription agreements for protected data on the iExec
platform. Understand subscription pricing and duration, along with options for
modifying terms and protecting subscribers' access.
---
-# Data sharing - Subscription
+# Data Sharing - Subscription
Subscription agreements are one of the options for distributing a collection
owner's protected data. Similar to the rental distribution terms, a subscription
@@ -22,7 +23,7 @@ do not auto-renew.
The collection owner allows the subscriber access to the data for a set period
of time.
-## The subscription bundle
+## The Subscription Bundle
Where subscriptions differ from rental distribution terms is that a subscription
may cover more than one protected data. We use the term `subscription bundle`
@@ -33,7 +34,7 @@ data in the bundle until their subscription term expires. The owner may add new
data to the bundle but may not remove protected data from the bundle as long as
there remains at least one subscriber to it.
-## Subscriber protection
+## Subscriber Protection
The Data Sharing smart contract ensures the subscriber maintains access for the
duration of their subscription term. Once the subscription expires, the consumer
@@ -43,7 +44,7 @@ subscription fee and duration, but any data included in the subscription remains
available. This assurance is critical to the subscription paradigm to ensure
trust between the data owner and the subscriber.
-## Modifying subscription terms
+## Modifying Subscription Terms
The collection owner has a few options to manage their subscription bundles:
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/subscription/removeProtectedDataFromSubscription.md b/src/manage-data/dataProtector/dataProtectorSharing/subscription/removeProtectedDataFromSubscription.md
index f694d9b8..a093cdb0 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/subscription/removeProtectedDataFromSubscription.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/subscription/removeProtectedDataFromSubscription.md
@@ -1,8 +1,8 @@
---
+title: removeProtectedDataFromSubscription
description:
- Remove a protected data from your iExec subscription. This method ensures that
- the data is no longer accessible to subscribers once removed, as long as there
- are no active subscriptions.
+ Remove a protected data from your subscription in iExec. Stop providing the
+ data to current and future subscribers, removing it from subscription access.
---
# removeProtectedDataFromSubscription
@@ -68,7 +68,7 @@ const { txHash } =
});
```
-## Return value
+## Return Value
```ts twoslash
import { type SuccessWithTransactionHash } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/subscription/setProtectedDataToSubscription.md b/src/manage-data/dataProtector/dataProtectorSharing/subscription/setProtectedDataToSubscription.md
index 00c12210..34673ef0 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/subscription/setProtectedDataToSubscription.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/subscription/setProtectedDataToSubscription.md
@@ -1,4 +1,5 @@
---
+title: setProtectedDataToSubscription
description:
Add your protected data to a subscription on the iExec platform. Allow active
subscribers to access your data easily by linking it to your subscribers to
@@ -56,7 +57,7 @@ const setToSubscriptionResult =
});
```
-## Return value
+## Return Value
```ts twoslash
import { type SuccessWithTransactionHash } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/subscription/setSubscriptionParams.md b/src/manage-data/dataProtector/dataProtectorSharing/subscription/setSubscriptionParams.md
index 6a829dbc..0d360eda 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/subscription/setSubscriptionParams.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/subscription/setSubscriptionParams.md
@@ -1,4 +1,5 @@
---
+title: setSubscriptionParams
description:
Set subscription parameters for your data collection on the iExec platform.
Define pricing, duration, and manage access to your protected data efficiently
@@ -104,7 +105,7 @@ const setSubscriptionParamsResult =
});
```
-## Return value
+## Return Value
```ts twoslash
import { type SuccessWithTransactionHash } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/dataProtectorSharing/subscription/subscribeToCollection.md b/src/manage-data/dataProtector/dataProtectorSharing/subscription/subscribeToCollection.md
index 8b1befcf..2ea2eac2 100644
--- a/src/manage-data/dataProtector/dataProtectorSharing/subscription/subscribeToCollection.md
+++ b/src/manage-data/dataProtector/dataProtectorSharing/subscription/subscribeToCollection.md
@@ -1,4 +1,5 @@
---
+title: subscribeToCollection
description:
Subscribe to a collection on iExec and gain access to both current and future
protected data. Manage your subscription with a fixed price and duration, with
@@ -125,7 +126,7 @@ const { txHash } = await dataProtectorSharing.subscribeToCollection({
});
```
-## Return value
+## Return Value
```ts twoslash
import { type SuccessWithTransactionHash } from '@iexec/dataprotector';
diff --git a/src/manage-data/dataProtector/getting-started.md b/src/manage-data/dataProtector/getting-started.md
index 762dfaa3..d4f77409 100644
--- a/src/manage-data/dataProtector/getting-started.md
+++ b/src/manage-data/dataProtector/getting-started.md
@@ -53,7 +53,7 @@ Depending on your project's requirements, you can instantiate the SDK using the
umbrella module for full functionality or opt for one of the submodules to
access specific sets of features.
-#### Instantiate using the umbrella module
+#### Instantiate Using the Umbrella Module
For projects requiring the full functionality of the SDK, including both core
and sharing functions.
@@ -92,7 +92,7 @@ const dataProtectorSharing = dataProtector.sharing; // access to methods
:::
-#### Instantiate only the `core` module
+#### Instantiate Only the `Core` Module
For projects focusing solely on core data protection functions.
@@ -124,7 +124,7 @@ const dataProtectorCore = new IExecDataProtectorCore(web3Provider);
:::
-#### Instantiate only the `sharing` module
+#### Instantiate Only the `Sharing` Module
For projects that need access management functions specifically.
@@ -159,7 +159,7 @@ const dataProtectorSharing = new IExecDataProtectorSharing(web3Provider);
:::
-#### Instantiate without a Web3 provider
+#### Instantiate Without a Web3 Provider
For projects that only require read functions, you can instantiate the SDK
without a Web3 provider.
@@ -192,7 +192,7 @@ const dataProtectorSharing = dataProtector.sharing;
:::
-#### Advanced configuration
+#### Advanced Configuration
To add optional parameters, see
[advanced configuration](./advanced/advanced-configuration.md).
diff --git a/src/manage-data/dataProtector/migrate-from-v1.md b/src/manage-data/dataProtector/migrate-from-v1.md
index de5d91a5..721fc966 100644
--- a/src/manage-data/dataProtector/migrate-from-v1.md
+++ b/src/manage-data/dataProtector/migrate-from-v1.md
@@ -1,10 +1,11 @@
---
+title: Migrate from V1 to V2
description:
Follow this guide to migrate your DataProtector project from v1 to v2beta with
the latest npm package
---
-# Migrate from v1 to v2
+# Migrate from V1 to V2
::: tip
@@ -44,7 +45,7 @@ const dataProtector = new IExecDataProtectorCore(web3Provider); // [!code ++]
Some methods were renamed in order to standardize the SDK, they still provide
the same functionalities as before.
-### Rename `fetchProtectedData` & add new filtering param
+### Rename `fetchProtectedData` & Add New Filtering Param
```js
await dataProtector.fetchProtectedData({ // [!code --]
diff --git a/src/manage-data/dataProtector/types.md b/src/manage-data/dataProtector/types.md
index 34da0607..db89799b 100644
--- a/src/manage-data/dataProtector/types.md
+++ b/src/manage-data/dataProtector/types.md
@@ -1,3 +1,10 @@
+---
+title: Types
+description:
+ Complete reference for DataProtector types including GrantedAccess,
+ ProtectedData, Collection, and other essential data structures.
+---
+
# Types
Types in DataProtector.
diff --git a/src/manage-data/guides/create-and-share-access.md b/src/manage-data/guides/manage-access.md
similarity index 97%
rename from src/manage-data/guides/create-and-share-access.md
rename to src/manage-data/guides/manage-access.md
index b91de133..14d2d223 100644
--- a/src/manage-data/guides/create-and-share-access.md
+++ b/src/manage-data/guides/manage-access.md
@@ -1,10 +1,10 @@
---
-title: Create and Share Access to Protected Data
+title: Manage Access to your ProtectedData
description:
Learn how to protect data and grant secure access for specific apps and users
---
-# π‘οΈ Create and Share Access to Protected Data
+# π‘οΈ Manage Access
**Want to keep your data private while still using it in confidential
applications?**
@@ -37,7 +37,7 @@ bun add @iexec/dataprotector
:::
-## Protect Your Data
+## Protect your Data
**Here's what happens:** Your data gets encrypted client-side and stored as an
NFT. Only you control who can decrypt and use it.
@@ -60,7 +60,7 @@ const protectedData = await dataProtectorCore.protectData({
console.log('Protected data address:', protectedData.address);
```
-### What You Can Protect
+### What you Can Protect
**Data**: Any kind of data you want to keep private and make available for
computations by authorized users and iApps.
diff --git a/src/manage-data/guides/monetize-protected-data.md b/src/manage-data/guides/monetize-protected-data.md
index 90ca0e08..df89ed41 100644
--- a/src/manage-data/guides/monetize-protected-data.md
+++ b/src/manage-data/guides/monetize-protected-data.md
@@ -102,7 +102,7 @@ await dataProtectorSharing.addToCollection({
});
```
-### **Step 2: Choose Your Distribution Model**
+### **Step 2: Choose your Distribution Model**
**DataProtector Sharing offers three distribution models:**
diff --git a/src/manage-data/what-is-protected-data.md b/src/manage-data/what-is-protected-data.md
index 44afe224..ea69bb91 100644
--- a/src/manage-data/what-is-protected-data.md
+++ b/src/manage-data/what-is-protected-data.md
@@ -1,9 +1,9 @@
---
-title: What Is Protected Data?
+title: What is Protected Data?
description: Understanding iExec's data protection mechanisms
---
-# β What Is Protected Data?
+# β What is Protected Data?
Protected Data refers to any data encrypted using the **iExec Data Protector
tool**. This end-to-end encryption solution enables users to protect, manage and
@@ -42,7 +42,7 @@ monetize their data within the Web3 ecosystem.
-### π Privacy-Preserving Computation
+### π Privacy-preserving Computation
@@ -96,7 +96,7 @@ monetize their data within the Web3 ecosystem.
-## How It Works
+## How it Works
diff --git a/src/overview/develop-with-ai.md b/src/overview/develop-with-ai.md
index 95c782d8..faecb310 100644
--- a/src/overview/develop-with-ai.md
+++ b/src/overview/develop-with-ai.md
@@ -11,7 +11,7 @@ Building privacy-first applications with iExec can be accelerated using
AI-powered development tools. This guide covers how to effectively use AI
assistants while maintaining security best practices.
-## π Documentation for LLMs and AI code editors
+## π Documentation for LLMs and AI Code Editors
You can use some MCP (Model Control Protocol) servers like
[Context7](https://context7.com/iexecblockchaincomputing/documentation-tools) to
diff --git a/src/overview/helloWorld.md b/src/overview/helloWorld.md
index 295589f4..24fe8e42 100644
--- a/src/overview/helloWorld.md
+++ b/src/overview/helloWorld.md
@@ -1,4 +1,5 @@
---
+title: Hello World Tutorial
description:
Kickstart your Web3 journey with iExec. In just 30 minutes, learn how to build
privacy-focused dApps, protect sensitive data, and manage data access.
@@ -21,7 +22,7 @@ import InfoIcon from '../components/InfoIcon.vue'
-## What you'll learn and build
+## What you'll Learn and Build
-## Getting started
+## Getting Started
Before you begin, make sure you have:
diff --git a/src/overview/helloWorld/1-overview.md b/src/overview/helloWorld/1-overview.md
index 5200c628..73eaaddc 100644
--- a/src/overview/helloWorld/1-overview.md
+++ b/src/overview/helloWorld/1-overview.md
@@ -1,4 +1,5 @@
---
+title: iExec Overview
description:
Explore how iExec enables developers to build privacy-preserving dApps using
confidential computing, blockchain, and secure data management. Learn how
@@ -6,7 +7,7 @@ description:
monetize sensitive data across Web3 applications.
---
-# π§ iExec overview
+# π§ iExec Overview
> Reading time π 8 mins
@@ -63,7 +64,7 @@ description:
This is where iExec comes in! We provide tools to easily add privacy and monetization features into your dApp.
-## π· How do we solve it?
+## π· How do we Solve it?
Unlike traditional security solutions, iExec protects your data throughout its
entire lifecycle, during storage, transfer, and even while **being processed by
@@ -80,24 +81,24 @@ Computing technologies.
confidentiality, and monetization of their data and digital assets within the Web3 ecosystem.
-## π The three key elements?
+## π The Three Key Elements?
iExec combines three fundamental elements that work together seamlessly:
-#### 1. Protect data with our devtool [DataProtector](../../manage-data/dataProtector/getting-started)
+#### 1. Protect Data with our Devtool [DataProtector](../../manage-data/dataProtector/getting-started)
- Encrypt your sensitive data and store it securely on Arweave or IPFS
- Only you control who can access it and when
- Perfect for private information like research data, business analytics, or
personal records
-#### 2. Compute data with iExec apps (iApps) running in secure environment
+#### 2. Compute Data with iExec Apps (iApps) Running in Secure Environment
- Special applications that can work with protected data
- Run in secure environments (called TEEs) that keep your data private
- Process data without exposing sensitive information
-#### 3. Set the rules with the blockchain layer
+#### 3. Set the Rules with the Blockchain Layer
- Enables tokenization of data
- Regain ownership of your data
@@ -107,7 +108,7 @@ iExec combines three fundamental elements that work together seamlessly:
By merging blockchain technology with confidential computing, we've pioneered DeCC (Decentralized Confidential Computing) to take privacy and security to the next level in Web3 ecosystems.
-### π§Έ DeCC explained like you're 5
+### π§Έ DeCC Explained Like You're 5
Imagine a **secure room**, like a private bank vault for data, where everything
inside stays **safe** and **private**.
@@ -120,12 +121,12 @@ environments) can enter the room to work with your data. You stay in **control**
by setting **access rules** that only you can modify about who can access it and
when.
-## π Building your first Privacy-preserving dApp
+## π Building your First Privacy-preserving dApp
Let's meet Bob and Alice to understand how iExec enables Privacy-preserving
applications:
-### 1. Meet Bob: the dApp developer π¨βπ»
+### 1. Meet Bob: the dApp Developer π¨βπ»
Bob is building a decentralized application that leverages iExec's technology.
His platform consists of:
@@ -135,7 +136,7 @@ His platform consists of:
- Thanks to DataProtector, end users can protect their data, manage access, and
process it seamlessly.
-### 2. Meet Alice: the dApp user π©βπΌ
+### 2. Meet Alice: the dApp User π©βπΌ
When using Bob's platform, Alice can:
@@ -152,7 +153,7 @@ Depending on the dApp's use case, Alice could:
And many other use cases...
-## π― Key takeaways
+## π― Key Takeaways
In this chapter, we covered the core concepts of iExec:
diff --git a/src/overview/helloWorld/2-protectData.md b/src/overview/helloWorld/2-protectData.md
index 587d8f5c..af4b0ae8 100644
--- a/src/overview/helloWorld/2-protectData.md
+++ b/src/overview/helloWorld/2-protectData.md
@@ -1,8 +1,15 @@
+---
+title: Let's Protect Data
+description:
+ Learn how to protect your data using iExec's DataProtector SDK in this
+ hands-on tutorial step.
+---
+
-# π‘οΈ Let's protect data
+# π‘οΈ Let's Protect Data
> Reading time: 6 minutes
@@ -15,7 +22,7 @@ import ProtectData from '../../modules/helloWorld/ProtectData.vue';
Protected data is encrypted data that remains confidential throughout its entire lifecycle - during storage, transfer and processing.
-## π§© DataProtector, key features
+## π§© DataProtector, Key Features
DataProtector is a developer tool built on top of our technology. It helps
developers easily add data protection, management, and monetization features to
@@ -42,11 +49,11 @@ their dApps with these key features:
DataProtector interacts with iExec's Bellecour sidechain, which is gasless, meaning you can use it completely free without needing any tokens!
-## π§© Let's create protected data
+## π§© Let's Create Protected Data
-## π§© What happened under the hood
+## π§© What Happened Under the Hood
You won't believe how easy it is to protect your data with DataProtector. Just a few lines of code, and you're done!
@@ -108,7 +115,7 @@ button:
-## π§© How to install and use DataProtector
+## π§© How to Install and Use DataProtector
Decentralized confidential computing might sound complex, but we've made it
simple through our developer tools.
@@ -170,7 +177,7 @@ const { address: protectedDataAddress } = await dataProtectorCore.protectData({
Check out our code sandbox for ready-to-use examples!
-## π― Key takeaways
+## π― Key Takeaways
- π **DataProtector** ensures data protection, management, and confidentiality
diff --git a/src/overview/helloWorld/3-buildIApp.md b/src/overview/helloWorld/3-buildIApp.md
index b2268ec1..d64bb485 100644
--- a/src/overview/helloWorld/3-buildIApp.md
+++ b/src/overview/helloWorld/3-buildIApp.md
@@ -1,4 +1,11 @@
-# π οΈ Build and deploy your first iApp
+---
+title: Build and Deploy Your First iApp
+description:
+ Learn how to build and deploy your first iExec application (iApp) for
+ processing protected data in this comprehensive tutorial.
+---
+
+# π οΈ Build and Deploy your First iApp
> Reading time π 10 mins
@@ -46,7 +53,7 @@ Before getting started, make sure you have:
Don't worry! All secrets used in this tutorial stay on your machine and arenβt shared with anyone. Youβll only need them to run the iapp run command.
-## π Types of iApps You Can Build
+## π Types of iApps you Can Build
iExec enables you to build various types of Privacy-preserving applications.
Here are some popular use cases:
@@ -75,7 +82,7 @@ Transfer, sell or rent protected content to authorized users.
These are just a few examples, the possibilities are endless. Want to explore iApp Generator? Check out our documentation and see what you can build!
-## πΎ Installation (win / mac / linux)
+## πΎ Installation (Win / Mac / Linux)
First, you need to install the `iapp` package. Open your terminal and run:
@@ -190,7 +197,7 @@ You will be prompted with the following message:
- A new folder has been created, it contains a very simple application, with the
main code being located in `src/app.js` or `src/app.py`
-## π§ͺ Test Your iApp
+## π§ͺ Test your iApp
To test your iApp, run `iapp test` command
@@ -238,7 +245,7 @@ iapp test --protectedData default
You can check how args and protectedData are processed in src/app.js or src/app.py
-## π Deploy Your iApp
+## π Deploy your iApp
Deploy your iApp on the iExec protocol.
@@ -268,7 +275,7 @@ Deploy your iApp on the iExec protocol.
Once you have your token, you can deploy your iApp using the following command:
```sh
-# you need your username and the access token (it can take a few minutes to deploy)
+# You need your username and the access token (it can take a few minutes to deploy)
iapp deploy
```
@@ -287,7 +294,7 @@ docker buildx inspect --bootstrap | grep -i platforms
β οΈ If you set the wrong Docker username, you can change it by editing the iapp.config.json file
-## π Run Your iApp
+## π Run your iApp
Now you can run your application:
@@ -304,7 +311,7 @@ protocol documentation [here](https://protocol.docs.iex.ec/).
π Congratulations! You've successfully deployed and run your first iApp on iExec. This is a significant milestone - your application is now ready to securely process confidential data in a trusted environment.
-## π― Key takeaways
+## π― Key Takeaways
- π **iApps:** Special applications that run in TEEs to process protected data
- π οΈ **iApp CLI:** Command-line tool for building, testing, and deploying iApps
diff --git a/src/overview/helloWorld/4-manageDataAccess.md b/src/overview/helloWorld/4-manageDataAccess.md
index 82b1dc03..19e87dc8 100644
--- a/src/overview/helloWorld/4-manageDataAccess.md
+++ b/src/overview/helloWorld/4-manageDataAccess.md
@@ -1,3 +1,10 @@
+---
+title: Manage Data Access
+description:
+ Learn how to grant and manage access to protected data using iExec's
+ DataProtector SDK in this tutorial step.
+---
+
-# π Bonus chapter
+# π Bonus Chapter
> Reading time π 4 mins
@@ -12,7 +19,7 @@ import Button from '../../components/ui/Button.vue';
You've successfully completed the Hello World journey and learned how to protect data, deploy iApps, and manage data access. Now it's time to claim your rewards! π
-## π Any questions?
+## π Any Questions?
@@ -30,7 +37,7 @@ import Button from '../../components/ui/Button.vue';
Need help setting up or got some questions? Join our Discord Community for support!
-## π Claim your voucher
+## π Claim your Voucher
What is a Voucher?
diff --git a/src/overview/quick-start.md b/src/overview/quick-start.md
index c12e5445..fa2199bd 100644
--- a/src/overview/quick-start.md
+++ b/src/overview/quick-start.md
@@ -1,3 +1,10 @@
+---
+title: Quick Start
+description:
+ Get started quickly with iExec's privacy-preserving technologies and explore
+ our project starters and interactive sandboxes
+---
+
# Quick Start
Get started quickly with iExec's privacy-preserving technologies. Choose from
@@ -95,7 +102,7 @@ learning and prototyping.
-## Next StepsAfter exploring our starters and sandboxes
+## Next StepsAfter Exploring our Starters and Sandboxes
1. **Choose Your Framework**: Start with our Next.js template or wait for
React/Vue options
diff --git a/src/overview/rlc.md b/src/overview/rlc.md
index 0bde44fd..978a34ac 100644
--- a/src/overview/rlc.md
+++ b/src/overview/rlc.md
@@ -113,7 +113,7 @@ You can acquire RLC tokens through several methods:
/>
-## π Ready to get started?
+## π Ready to Get Started?
Ready to dive into the iExec ecosystem? Here are the next steps:
diff --git a/src/overview/tooling-and-explorers/builder-dashboard.md b/src/overview/tooling-and-explorers/builder-dashboard.md
index b9871be0..993df2db 100644
--- a/src/overview/tooling-and-explorers/builder-dashboard.md
+++ b/src/overview/tooling-and-explorers/builder-dashboard.md
@@ -38,7 +38,7 @@ confidential iApps deployed on the protocol.
/>
-## π Voucher Consumption & Task History {#voucher-history}
+## π Voucher Consumption & Task History
The first screen of the Builder Dashboard provides comprehensive voucher
monitoring with detailed task execution history and real-time balance tracking.
@@ -93,7 +93,7 @@ monitoring with detailed task execution history and real-time balance tracking.
/>
-## π± Confidential iApp Management {#iapp-management}
+## π± Confidential iApp Management
The second screen provides comprehensive management and analytics for your
deployed confidential iApps with detailed statistics and user insights.
diff --git a/src/overview/tooling-and-explorers/iexec-explorer.md b/src/overview/tooling-and-explorers/iexec-explorer.md
index d0c6cd00..19b6f38a 100644
--- a/src/overview/tooling-and-explorers/iexec-explorer.md
+++ b/src/overview/tooling-and-explorers/iexec-explorer.md
@@ -18,7 +18,7 @@ explore apps and protectedDataβall in one powerful dashboard.
caption="π Explore the iExec Protocol"
/>
-## π― What You Can Explore
+## π― What you Can Explore
-## πΌ Deals & Tasks {#deals-tasks}
+## πΌ Deals & Tasks
-## π― What is The Graph?
+## π― What is the Graph?
The Graph is a decentralized protocol for indexing and querying blockchain data.
It enables developers to build and publish open APIs called **subgraphs** that
diff --git a/src/overview/use-cases.md b/src/overview/use-cases.md
index 54ee4f5e..31197eae 100644
--- a/src/overview/use-cases.md
+++ b/src/overview/use-cases.md
@@ -1,3 +1,10 @@
+---
+title: Use Cases
+description:
+ Explore real-world applications and demo showcases of iExec's
+ privacy-preserving technologies in action
+---
+
# Use Cases Showcase
Explore our demo applications showcasing iExec's privacy-preserving technologies
diff --git a/src/overview/welcome.md b/src/overview/welcome.md
index 7f83f035..f6bb652b 100644
--- a/src/overview/welcome.md
+++ b/src/overview/welcome.md
@@ -4,7 +4,7 @@ description:
Discover how iExec empowers developers to build privacy-first applications
---
-# π‘ The Privacy toolkit
+# π‘ The Privacy Toolkit
Welcome to iExec
@@ -21,7 +21,7 @@ sensitive user data.
iExec solves this by providing a privacy-first toolkit that makes it simple to protect, manage, and compute data securely, even in untrusted environments. We believe privacy should be a built-in feature, not an afterthought.
-## π οΈ How we make it happen
+## π οΈ How we Make it Happen
iExec provides a complete toolkit that makes privacy simple and actionable:
@@ -54,7 +54,7 @@ iExec provides a complete toolkit that makes privacy simple and actionable:
-## π§ What we provide
+## π§ What we Provide
Ready-to-use components to protect sensitive data and computation:
@@ -82,7 +82,7 @@ Confidential Computing made easy
-## π‘ Real-world use cases
+## π‘ Real-world Use Cases
@@ -155,7 +155,7 @@ Confidential Computing made easy
In the next chapters, we'll guide you through our Hello World journey, a 30 minutes start that will teach you everything about iExec, from protecting sensitive data to building and deploying confidential apps.
-## π Start building
+## π Start Building
Ready to build privacy-first applications? Choose your path:
diff --git a/src/protocol/workers.md b/src/protocol/workers.md
index bc0d9bfe..c9ea366c 100644
--- a/src/protocol/workers.md
+++ b/src/protocol/workers.md
@@ -1,6 +1,8 @@
---
-title: Workers & Workerpools
-description: Workers and worker pools
+title: Workers and Workerpools
+description:
+ Understanding the compute infrastructure of iExec and how workers and
+ workerpools function
---
# βοΈ Workers & Workerpools
diff --git a/src/use-iapp/getting-started.md b/src/use-iapp/getting-started.md
index 4000de65..f0604249 100644
--- a/src/use-iapp/getting-started.md
+++ b/src/use-iapp/getting-started.md
@@ -1,6 +1,7 @@
---
title: Getting Started with iApps
-description: Getting started with iApps
+description:
+ Your first steps to discover and execute existing iApps on the iExec platform
---
# π Getting Started
diff --git a/src/use-iapp/guides/add-inputs-to-execution.md b/src/use-iapp/guides/add-inputs-to-execution.md
index 8f1b592b..0965928e 100644
--- a/src/use-iapp/guides/add-inputs-to-execution.md
+++ b/src/use-iapp/guides/add-inputs-to-execution.md
@@ -1,9 +1,9 @@
---
-title: Add inputs to the execution
+title: Add Inputs to the Execution
description: Add inputs to the execution
---
-# Add inputs to the execution
+# Add Inputs to the Execution
This page is under development.
diff --git a/src/use-iapp/guides/different-ways-to-execute.md b/src/use-iapp/guides/different-ways-to-execute.md
index 28d0e1ff..a2efbf89 100644
--- a/src/use-iapp/guides/different-ways-to-execute.md
+++ b/src/use-iapp/guides/different-ways-to-execute.md
@@ -1,9 +1,9 @@
---
-title: Different ways to execute an iApp
+title: Different Ways to Execute an iApp
description: Different ways to execute an iApp
---
-# Different ways to execute an iApp
+# Different Ways to Execute an iApp
This page is under development.
diff --git a/src/use-iapp/guides/how-to-pay-executions.md b/src/use-iapp/guides/how-to-pay-executions.md
index 0adc35e6..68a42d82 100644
--- a/src/use-iapp/guides/how-to-pay-executions.md
+++ b/src/use-iapp/guides/how-to-pay-executions.md
@@ -1,9 +1,9 @@
---
-title: How to pay the executions
+title: How to Pay the Executions
description: How to pay for executions
---
-# How to pay the executions
+# How to Pay the Executions
This page is under development.
diff --git a/src/use-iapp/how-to-pay/how-to-pay-for-web3mail.md b/src/use-iapp/how-to-pay/how-to-pay-for-web3mail.md
index 088f44d6..8eec8cdc 100644
--- a/src/use-iapp/how-to-pay/how-to-pay-for-web3mail.md
+++ b/src/use-iapp/how-to-pay/how-to-pay-for-web3mail.md
@@ -1,4 +1,11 @@
-# How to pay for Web3mail
+---
+title: How to Pay for Web3Mail
+description:
+ Learn how to pay for Web3Mail's confidential computing power using vouchers
+ and xLC for secure, blockchain-based email communication.
+---
+
+# How to Pay for Web3Mail
[Web3Mail](../web3mail) dev tool offers secure, blockchain-based communication
by encrypting emails and protecting user privacy.
@@ -48,7 +55,7 @@ remaining balance is automatically deducted from your account.
For additional information on using xRLC for fallback payment in Web3Mail, refer
to the **Using xRLC with Web3Mail** section.
-### Step 4: Execute Web3Mail's sendEmail Function
+### Step 4: Execute Web3Mail's SendEmail Function
When using a voucher for payment, set the `useVoucher` parameter to `true`:
@@ -66,7 +73,7 @@ const sendEmail = await web3mail.sendEmail({
});
```
-## Using xRlC for Web3Mail
+## Using xRLC for Web3Mail
If you choose to use xRLC to cover the computational cost of Web3Mail (or if you
need to cover data access costs such as retrieving the recipient's email
diff --git a/src/use-iapp/how-to-pay/how-to-pay-for-web3telegram.md b/src/use-iapp/how-to-pay/how-to-pay-for-web3telegram.md
index b0347d9d..ea3a5b43 100644
--- a/src/use-iapp/how-to-pay/how-to-pay-for-web3telegram.md
+++ b/src/use-iapp/how-to-pay/how-to-pay-for-web3telegram.md
@@ -1,11 +1,12 @@
---
+title: How to Pay for Web3Telegram
description:
Learn how to pay for Web3Telegram using vouchers or xRLC. This guide walks you
through obtaining vouchers, managing RLC to xRLC conversion, and using both
methods for secure Telegram communication.
---
-# How to pay for Web3telegram
+# How to Pay for Web3Telegram
[Web3Telegram](../web3telegram) dev tool offers secure, blockchain-based
communication by encrypting emails and protecting user privacy.
@@ -55,7 +56,7 @@ remaining balance is automatically deducted from your account.
For additional information on using xRLC for fallback payment in Web3Telegram,
refer to the **Using xRLC with Web3Telegram** section.
-### Step 4: Execute Web3Telegram's sendTelegram Function
+### Step 4: Execute Web3Telegram's `sendTelegram` Function
When using a voucher for payment, set the `useVoucher` parameter to `true`:
@@ -79,7 +80,7 @@ const sendTelegram = await web3telegram.sendTelegram({
});
```
-## Using xRlC for Web3Telegram
+## Using xRLC for Web3Telegram
If you choose to use xRLC to cover the computational cost of Web3Telegram (or if
you need to cover data access costs such as retrieving the recipient's Chat Id),
@@ -138,7 +139,7 @@ Use the command below to check your balance:
iexec.account.show();
```
-### Execute sendTelegram
+### Execute `sendTelegram`
Set the `useVoucher` parameter to `false` when using Web3Telegram's sendTelegram
function to pay with xRLC:
diff --git a/src/use-iapp/introduction.md b/src/use-iapp/introduction.md
index b464f422..3434e4f6 100644
--- a/src/use-iapp/introduction.md
+++ b/src/use-iapp/introduction.md
@@ -1,6 +1,8 @@
---
title: Introduction to Using iApps
-description: Introduction to using iApps
+description:
+ Learn how to discover, execute, and interact with iExec applications for
+ privacy-preserving computation
---
# π Introduction
diff --git a/src/use-iapp/web3mail.md b/src/use-iapp/web3mail.md
index 1f67a7b5..769bb9af 100644
--- a/src/use-iapp/web3mail.md
+++ b/src/use-iapp/web3mail.md
@@ -1,4 +1,5 @@
---
+title: Web3Mail
description:
Web3Mail enables secure, private email communication on the blockchain using
Ethereum addresses. Manage contact permissions and send emails without
diff --git a/src/use-iapp/web3mail/advanced-configuration.md b/src/use-iapp/web3mail/advanced-configuration.md
index b1b0cd83..1eccb10f 100644
--- a/src/use-iapp/web3mail/advanced-configuration.md
+++ b/src/use-iapp/web3mail/advanced-configuration.md
@@ -1,11 +1,12 @@
---
+title: Advanced Configuration
description:
Customize iExec Web3Mail with advanced options like custom iApp address, iApp
whitelist, IPFS node, and subgraph URL for tailored blockchain email
communication.
---
-# Advanced configuration
+# Advanced Configuration
The `IExecWeb3mail` constructor accepts configuration options object. As these
options are very specific, you won't need to use them for a standard usage of
diff --git a/src/use-iapp/web3mail/getting-started.md b/src/use-iapp/web3mail/getting-started.md
index 149e5ace..70a2390f 100644
--- a/src/use-iapp/web3mail/getting-started.md
+++ b/src/use-iapp/web3mail/getting-started.md
@@ -1,4 +1,5 @@
---
+title: Getting Started
description:
Get started with the iExec Web3Mail SDK. Learn how to install, configure, and
instantiate it with or without a Web3 provider to enable blockchain-based
@@ -49,7 +50,7 @@ If you use it with **Webpack**, some polyfills will be needed. You can find a
working project
[here](https://github.com/iExecBlockchainComputing/web3mail-sdk/tree/main/demo/browser-webpack).
-### Instantiate with a Web3 provider
+### Instantiate with a Web3 Provider
::: code-group
@@ -78,7 +79,7 @@ const web3mail = new IExecWeb3mail(web3Provider);
:::
-### Instantiate without a Web3 provider
+### Instantiate Without a Web3 Provider
For projects that only require read functions, you can instantiate the SDK
without a Web3 provider.
diff --git a/src/use-iapp/web3mail/methods/fetchMyContacts.md b/src/use-iapp/web3mail/methods/fetchMyContacts.md
index 947d1267..b7e6952a 100644
--- a/src/use-iapp/web3mail/methods/fetchMyContacts.md
+++ b/src/use-iapp/web3mail/methods/fetchMyContacts.md
@@ -1,4 +1,5 @@
---
+title: fetchMyContacts
description:
Use the fetchMyContacts method from iExec Web3Mail to retrieve contact infos
of users who authorized you to email them.
@@ -53,7 +54,7 @@ const contactsList = await web3mail.fetchMyContacts({
});
```
-## Return value
+## Return Value
The result object contains a list of `contact` objects. Each `contact`
represents one user who previously granted you authorization to send them
diff --git a/src/use-iapp/web3mail/methods/fetchUserContacts.md b/src/use-iapp/web3mail/methods/fetchUserContacts.md
index e90bb63c..42bad9d3 100644
--- a/src/use-iapp/web3mail/methods/fetchUserContacts.md
+++ b/src/use-iapp/web3mail/methods/fetchUserContacts.md
@@ -1,4 +1,5 @@
---
+title: fetchUserContacts
description:
Use fetchUserContacts from iExec Web3Mail to get users who authorized a
specific address to email them.
@@ -73,7 +74,7 @@ const contactsList = await web3mail.fetchUserContacts({
});
```
-## Return value
+## Return Value
The result object contains a list of `contact` objects. Each `contact`
represents one user who previously granted authorization for the user identified
diff --git a/src/use-iapp/web3mail/methods/sendEmail.md b/src/use-iapp/web3mail/methods/sendEmail.md
index 3ec49b94..a5f74ffd 100644
--- a/src/use-iapp/web3mail/methods/sendEmail.md
+++ b/src/use-iapp/web3mail/methods/sendEmail.md
@@ -1,4 +1,5 @@
---
+title: sendEmail
description:
Send secure, permissioned emails using iExec Web3Mail's sendEmail methodβno
need to know the user's email, just their authorized protectedData address.
@@ -308,7 +309,7 @@ const sendEmail = await web3mail.sendEmail({
});
```
-## Return value
+## Return Value
```ts twoslash
import { type SendEmailResponse } from '@iexec/web3mail';
@@ -322,9 +323,9 @@ This uniquely identifies the email task on the iExec side chain. You can view
the status of the `sendEmail` method by monitoring the task on the
[iExec Explorer](https://explorer.iex.ec/bellecour).
-## Error handling
+## Error Handling
-### Validation errors
+### Validation Errors
We use [yup](https://github.com/jquense/yup) to validate input parameters.
@@ -352,7 +353,7 @@ try {
}
```
-### Email schema error
+### Email Schema Error
To be able to send an email to a protected data, it needs to contain, well, an
email address.
@@ -366,7 +367,7 @@ If not, you'll get a `WorkflowError` in the form of:
}
```
-### iExec protocol errors
+### iExec Protocol Errors
In case the iExec stack is to blame, we'll make it clear and you'll get a
specific `WorkflowError`:
@@ -379,7 +380,7 @@ specific `WorkflowError`:
}
```
-### Workflow errors
+### Workflow Errors
For any other errors, you'll get a `WorkflowError` error in the form of:
diff --git a/src/use-iapp/web3telegram.md b/src/use-iapp/web3telegram.md
index 3eb952df..95d5e3d9 100644
--- a/src/use-iapp/web3telegram.md
+++ b/src/use-iapp/web3telegram.md
@@ -1,4 +1,5 @@
---
+title: Web3Telegram
description:
Web3Telegram enables private, blockchain-based Telegram messaging using
Ethereum addresses. Users retain full control over who can contact
diff --git a/src/use-iapp/web3telegram/advanced-configuration.md b/src/use-iapp/web3telegram/advanced-configuration.md
index 8a393269..c18a4a38 100644
--- a/src/use-iapp/web3telegram/advanced-configuration.md
+++ b/src/use-iapp/web3telegram/advanced-configuration.md
@@ -1,11 +1,12 @@
---
+title: Advanced Configuration
description:
Explore the advanced configuration options for integrating Web3Telegram. Learn
how to customize the dApp address, whitelist, subgraph, IPFS node, and more
for secure Telegram communication on the iExec blockchain.
---
-# Advanced configuration
+# Advanced Configuration
The `IExecWeb3Telegram` constructor accepts configuration options object. As
these options are very specific, you won't need to use them for a standard usage
diff --git a/src/use-iapp/web3telegram/getting-started.md b/src/use-iapp/web3telegram/getting-started.md
index 6be791f2..a6825d72 100644
--- a/src/use-iapp/web3telegram/getting-started.md
+++ b/src/use-iapp/web3telegram/getting-started.md
@@ -1,4 +1,5 @@
---
+title: Getting Started
description:
Get started with Web3Telegram, a secure blockchain-based tool for sending
Telegram messages. Install the SDK and integrate it with your Web3 project.
diff --git a/src/use-iapp/web3telegram/integration-guide.md b/src/use-iapp/web3telegram/integration-guide.md
index b85a174e..898cc0f1 100644
--- a/src/use-iapp/web3telegram/integration-guide.md
+++ b/src/use-iapp/web3telegram/integration-guide.md
@@ -1,4 +1,5 @@
---
+title: iExec Web3Telegram Integration Guide
description:
Integrate iExec Web3Telegram to enable secure and private Telegram messaging
via blockchain-based access control, ensuring user privacy and decentralized
@@ -21,7 +22,7 @@ The integration process consists of the following steps:
messages.**
4. **Send messages securely using the Web3Telegram SDK.**
-## 1. Get your users to retrieve their chat ID
+## 1. Get your Users to Retrieve their Chat ID
To enable messaging via Web3Telegram, you need to retrieve the recipient's Chat
ID.
@@ -48,7 +49,7 @@ senders** can contact you.
:::
-## 2. Create the protected data with data protector SDK
+## 2. Create the Protected Data with Data Protector SDK
After obtaining your user's Chat ID, you need to protect it using iExecβs Data
Protector to ensure privacy and security.
@@ -64,7 +65,7 @@ const protectedData = await dataProtectorCore.protectData({
});
```
-## 3. Grant access via data protector SDK
+## 3. Grant Access via Data Protector SDK
To allow users to send messages, you must explicitly grant access to specific
users.
@@ -85,7 +86,7 @@ const grantedAccess = await dataProtectorCore.grantAccess({
});
```
-## 4. Send messages via Web3Telegram SDK
+## 4. Send Messages via Web3Telegram SDK
Once authorized, a user can send messages via Web3Telegram SDK.
diff --git a/src/use-iapp/web3telegram/methods/fetchMyContacts.md b/src/use-iapp/web3telegram/methods/fetchMyContacts.md
index 2ef3b763..26cf1aba 100644
--- a/src/use-iapp/web3telegram/methods/fetchMyContacts.md
+++ b/src/use-iapp/web3telegram/methods/fetchMyContacts.md
@@ -1,4 +1,5 @@
---
+title: fetchMyContacts
description:
Use the fetchMyContacts method from iExec web3telegram to retrieve contact
infos of users who authorized you to message them
@@ -53,7 +54,7 @@ const contactsList = await web3telegram.fetchMyContacts({
});
```
-## Return value
+## Return Value
The result object contains a list of `contact` objects. Each `contact`
represents one user who previously granted you authorization to send them
diff --git a/src/use-iapp/web3telegram/methods/fetchUserContacts.md b/src/use-iapp/web3telegram/methods/fetchUserContacts.md
index ac77f2ac..2eeb855b 100644
--- a/src/use-iapp/web3telegram/methods/fetchUserContacts.md
+++ b/src/use-iapp/web3telegram/methods/fetchUserContacts.md
@@ -1,4 +1,5 @@
---
+title: fetchUserContacts
description:
Use fetchUserContacts method from iExec web3telegram to get users who
authorized a specific Ethereum address to message them
@@ -73,7 +74,7 @@ const contactsList = await web3telegram.fetchUserContacts({
});
```
-## Return value
+## Return Value
The result object contains a list of `contact` objects. Each `contact`
represents one user who previously granted authorization for the user identified
diff --git a/src/use-iapp/web3telegram/methods/sendTelegram.md b/src/use-iapp/web3telegram/methods/sendTelegram.md
index e948c1b1..bf63172b 100644
--- a/src/use-iapp/web3telegram/methods/sendTelegram.md
+++ b/src/use-iapp/web3telegram/methods/sendTelegram.md
@@ -1,4 +1,5 @@
---
+title: sendTelegram
description:
Use the sendTelegram method from Web3Telegram to send secure Telegram messages
without knowing the recipient's username or chat ID.
@@ -279,7 +280,7 @@ const sendTelegram = await web3telegram.sendTelegram({
});
```
-## Return value
+## Return Value
```ts twoslash
import { type SendTelegramResponse } from '@iexec/web3telegram';