Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
bb96aac
refactor: update links in navigation and index, remove obsolete build…
Le-Caignec Aug 14, 2025
31c836a
refactor: update payment link in index to point to executions guide
Le-Caignec Aug 14, 2025
864defb
chore: remove obsolete build iApp guide
Le-Caignec Aug 14, 2025
f35b3c6
feat: enhance iApp deployment guide with chain selection and dynamic …
Le-Caignec Aug 14, 2025
2c79555
fix: update badges in processProtectedData documentation
Le-Caignec Aug 14, 2025
9904b8c
fix: update background color for ChainNotSupportedBadge
Le-Caignec Aug 14, 2025
57eee4b
docs: update README and enhance data protection documentation
Le-Caignec Aug 14, 2025
f13ac50
docs: add ChainNotSupportedBadge to payment guides and methods
Le-Caignec Aug 14, 2025
fb5b1c3
refactor: update ChainNotSupportedBadge styling and text
Le-Caignec Aug 14, 2025
51bb5f6
docs: integrate ChainNotSupportedBadge across data protector document…
Le-Caignec Aug 14, 2025
648f750
feat: add TokenSymbol component and update documentation references
Le-Caignec Aug 17, 2025
f07498f
refactor: clean up whitespace and improve documentation clarity
Le-Caignec Aug 17, 2025
d54e900
docs: update documentation links and import paths for consistency
Le-Caignec Aug 17, 2025
d79d999
fix: update default chain in ChainSelector to Arbitrum and improve do…
Le-Caignec Aug 17, 2025
cbec0c3
fix: tw feedbacks
Le-Caignec Aug 17, 2025
3975cae
fix: correct typos and fix english
Le-Caignec Aug 17, 2025
bedd591
fix: lisibility & ton
Le-Caignec Aug 17, 2025
ed80354
chore: update GitHub Actions workflow to trigger on pull requests ins…
Le-Caignec Aug 17, 2025
640fe70
docs: update README to enhance clarity and add Development workflow s…
Le-Caignec Aug 18, 2025
44f9f9a
fix: Merge remote-tracking branch 'origin/main' into feature/finalize…
Le-Caignec Aug 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ name: main-ci

on:
workflow_dispatch:
push:
paths-ignore:
- 'README.md'
pull_request:

jobs:
build:
Expand Down
2 changes: 1 addition & 1 deletion .vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ export default withMermaid(
// https://vitepress.dev/reference/default-theme-config
nav: [
{ text: 'Get Started', link: '/get-started/welcome' },
{ text: 'Guides', link: '/guides/build-iapp/' },
{ text: 'Guides', link: '/guides/build-iapp/build-&-deploy' },
{ text: 'References', link: '/references/dataProtector' },
{
component: 'ChainSelector',
Expand Down
6 changes: 1 addition & 5 deletions .vitepress/sidebar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ export function getSidebar() {
},
{
text: '🪙 RLC Token',
link: '/get-started/rlc',
link: '/get-started/overview/rlc',
},
],
},
Expand Down Expand Up @@ -477,10 +477,6 @@ export function getSidebar() {
text: 'Advanced Configuration',
link: '/references/dataProtector/advanced/advanced-configuration',
},
{
text: 'Sharing smart contract',
link: '/references/dataProtector/advanced/dps-smart-contract',
},
{
text: 'Apps whitelist',
link: '/references/dataProtector/advanced/apps-whitelist',
Expand Down
16 changes: 7 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ steps to contribute:

Fork this repository and ensure you're working on the `main` branch:

[![fork-button](./src/public/fork-button.png)](https://github.com/iExecBlockchainComputing/documentation/fork)
[![fork-button](/src/public/fork-button.png)](https://github.com/iExecBlockchainComputing/documentation/fork)

### 2. Set Up Your Development Environment

Expand Down Expand Up @@ -168,19 +168,14 @@ for input parameters:
## TODO

- Add an audit section for smart contracts
- Add Arbitrum support
- On arbitrum hide : DataProtector Sharing ??
- Adapt hardcoded address to feat with new contracts deployed on arbitrum
- Add link to the new explorer feature Asset_Types in the guide =>
`handle-schemas-dataset-types`
- Add link to remix for deploying whitelist
- complete `use-iapp` 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 `Protocol`section
- Add a Development workflow
- Update context7 when doc will be deployed
- Add a Development workflow section (1 - ProtectData, 2- ...)
- Update context7 when doc will be deployed (Martin)
- Check theGraph Images with design Team
- Update the Dune Dashboard to the final version
- Add new section in `iexec-explorer.md` file to talk about: available chain on
Expand All @@ -189,7 +184,10 @@ for input parameters:
- Check how to pay guide to update with the launch on Arbitrum (RLC vs xRLC)
- framework AI supporté TDX vs SGX
- check glossary
- migrate github SDK doc here
- migrate github iexec SDK doc here
- migrate pay-per-task page into a guide
- check pages (introduction & getting-started) for use-iapp guide
- explain TDX vs SGX
- Give recap of Workerpool address fo chains
- Talk about ENS on Bellecour(it's not supported on arbitrum)
- Rework Advanced iApp building guides. (from "old" protocol doc)
Empty file.
4 changes: 2 additions & 2 deletions src/components/AddressChip.vue
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
<script setup>
import { ref, computed } from 'vue';
import avatarStyles from './profile.module.css';
import { getAvatarVisualNumber } from '../utils/getAvatarVisualNumber';
import { truncateAddress } from '../utils/truncateAddress';
import { getAvatarVisualNumber } from '@/utils/getAvatarVisualNumber';
import { truncateAddress } from '@/utils/truncateAddress';

const props = defineProps({
address: {
Expand Down
29 changes: 29 additions & 0 deletions src/components/ChainNotSupportedBadge.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<script setup>
import { computed } from 'vue';
import { VPBadge } from 'vitepress/theme';
import useUserStore from '@/stores/useUser.store';

const userStore = useUserStore();

// Check if Arbitrum is selected (Arbitrum chain ID is 42161)
const isArbitrumSelected = computed(() => {
return userStore.chainId === 42161;
});

// Only show the badge when Arbitrum is selected
const shouldShow = computed(() => isArbitrumSelected.value);
</script>

<template>
<VPBadge
v-if="shouldShow"
type="tip"
text="Chain Not Supported"
style="
color: var(--vp-c-red-1);
background-color: hsla(350, 89%, 60%, 8%);
margin-top: 1px;
margin-right: 4px;
"
/>
</template>
4 changes: 2 additions & 2 deletions src/components/ChainSelector.vue
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,8 @@ if (!userStore.chainId) {
userStore.setSelectedChain(walletChain);
}
} else {
// Otherwise, use Bellecour as default
const defaultChain = getChainById(0x86); // Bellecour
// Otherwise, use Arbitrum as default
const defaultChain = getChainById(42161); // Arbitrum
if (defaultChain) {
userStore.setSelectedChain(defaultChain);
}
Expand Down
25 changes: 25 additions & 0 deletions src/components/TokenSymbol.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<template>
<span class="font-semibold text-inherit">{{ tokenSymbol }}</span>
</template>

<script setup lang="ts">
import { computed } from 'vue';
import useUserStore from '@/stores/useUser.store';

const userStore = useUserStore();

// Computed property to get the correct token symbol based on selected chain
const tokenSymbol = computed(() => {
const currentChainId = userStore.getCurrentChainId();

// Bellecour (0x86) uses xRLC, Arbitrum (42161) uses RLC
if (currentChainId === 0x86) {
return 'xRLC';
} else if (currentChainId === 42161) {
return 'RLC';
}

// Default fallback
return 'RLC';
});
</script>
14 changes: 7 additions & 7 deletions src/get-started/develop-with-ai.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ description:

# 🤖 Develop with AI

Building privacy-first applications with iExec can be accelerated using
AI tools accelerate building privacy-first applications with iExec 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

You can use some MCP (Model Control Protocol) servers like
You can use MCP (Model Control Protocol) servers like
[Context7](https://context7.com/iexecblockchaincomputing/documentation-tools) to
provide:

Expand All @@ -23,12 +23,12 @@ provide:

## 🎨 Vibe Coding Integration

Vibe coding is a modern way to build applications by describing what you want in
plain language. An AI assistant (like Cursor or ChatGPT) then generates code
based on your description.
Vibe coding lets you build applications by describing what you want in plain
language. An AI assistant (like Cursor or ChatGPT) then generates code based on
your description.

It's fast, creative, and helps you prototype ideas quickly. Even if you're not a
technical expert you can:
It's fast, creative, and helps you prototype ideas quickly. Even non-technical
users can:

- Write a prompt like: "I want to create a form able to protect my data with
DataProtector"
Expand Down
22 changes: 9 additions & 13 deletions src/get-started/helloWorld.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,9 @@ import ChainSelector from '@/components/ChainSelector.vue'

> Reading time 🕒 2 mins

<div class="mb-6 p-4 bg-[var(--vp-c-bg-soft)] rounded-lg border border-[var(--vp-c-divider)]">
<div class="flex items-center gap-3 mb-3">
<span class="text-lg">🌐</span>
<h3 class="m-0 text-lg font-medium">Select Your Network</h3>
</div>
<div class="flex items-center gap-3">
<span class="text-sm font-medium">Network:</span>
<div class="mb-0 p-6 bg-[var(--vp-c-bg-soft)] rounded-lg border border-[var(--vp-c-divider)]">
<div class="flex">
<h3 class="m-0! py-2 text-lg font-medium">🌐 Select Your Network :</h3>
<ChainSelector />
</div>
</div>
Expand All @@ -41,7 +37,7 @@ import ChainSelector from '@/components/ChainSelector.vue'
<div class="text-3xl">📚</div>
<div class="flex flex-col h-full min-h-[120px]">
<h3 class="m-0! text-lg leading-tight text-[var(--vp-c-text-1)]">1 - iExec Overview</h3>
<p class="my-4 text-sm text-[var(--vp-c-text-2)]">Discover how iExec technologies work and the problem they solves</p>
<p class="my-4 text-sm text-[var(--vp-c-text-2)]">Discover how iExec technologies work and the problems they solve</p>
<div class="mt-auto pt-3">
<span class="inline-block text-sm bg-[var(--vp-c-bg-soft)] rounded text-[var(--vp-c-text-4)]">8 min read</span>
</div>
Expand Down Expand Up @@ -100,29 +96,29 @@ Before you begin, make sure you have:
<div class="flex flex-col gap-2 my-4 pl-0">
<div class="flex items-center gap-4 text-left">
<div class="flex items-center gap-1 flex-1 text-sm font-medium">
🦊 Ethereum Wallet
<InfoIcon tooltip="Required to interact with iExec sidechain Bellecour features, manage your data access permissions, and handle transactions on the iExec platform" />
🦊 Ethereum Wallet
<InfoIcon tooltip="Required to interact with iExec protocol, manage your data access permissions, and handle transactions on the iExec platform" />
</div>
<a target="_blank" href="https://chromewebstore.google.com/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn" class="no-underline! text-sm ml-auto hover:underline!">Metamask Download →</a>
</div>
<div class="flex items-center gap-4 text-left">
<div class="flex items-center gap-1 flex-1 text-sm font-medium">
📦 Node.js v20+
📦 Node.js v20+
<InfoIcon tooltip="Required runtime environment for running JavaScript code and managing project dependencies" />
</div>
<a target="_blank" href="https://nodejs.org/en/" class="no-underline! text-sm ml-auto hover:underline!">Download →</a>
</div>
<div class="flex items-center gap-4 text-left">
<div class="flex items-center gap-1 flex-1 text-sm font-medium">
🐳 Docker installed
🐳 Docker installed
<InfoIcon tooltip="Docker is essential for creating isolated containers that package your iExec applications with all dependencies. This ensures consistent and secure execution across different environments, especially in TEEs (Trusted Execution Environments)" />
</div>
<a target="_blank" href="https://docker.com/" class="no-underline! text-sm ml-auto hover:underline!">Download →</a>
</div>

<div class="flex items-center gap-4 text-left">
<div class="flex items-center gap-1 flex-1 text-sm font-medium">
🐳 DockerHub Account
🐳 DockerHub Account
<InfoIcon tooltip="Needed to publish and manage your iExec applications in containers for secure deployment" />
</div>
<a target="_blank" href="https://hub.docker.com/" class="no-underline! text-sm ml-auto hover:underline!">Sign Up →</a>
Expand Down
17 changes: 8 additions & 9 deletions src/get-started/helloWorld/1-overview.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
---
title: iExec Overview
description:
Explore how iExec enables developers to build privacy-preserving dApps using
confidential computing, blockchain, and secure data management. Learn how
tools like DataProtector and iApps empower users to control, protect, and
monetize sensitive data across Web3 applications.
Explore how iExec's confidential computing toolkit helps developers build
privacy-preserving dApps. Learn how DataProtector and iApps let users control,
protect, and monetize sensitive data.
---

# 🧐 iExec Overview
Expand Down Expand Up @@ -66,8 +65,8 @@ description:

## 👷 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
Unlike traditional tools, iExec protects your data throughout its entire
lifecycle - during storage, transfer, and even while **being processed by
applications.**

This is made possible thanks to
Expand Down Expand Up @@ -128,8 +127,8 @@ applications:

### 1. Meet Bob: the dApp Developer 👨‍💻

Bob is building a decentralized application that leverages iExec's technology.
His platform consists of:
Bob is building a decentralized application that uses iExec's technology. His
platform consists of:

- A user-friendly interface for users.
- A DataProtector SDK that's easy to integrate into any application.
Expand Down Expand Up @@ -159,7 +158,7 @@ And many other use cases...
<p>In this chapter, we covered the core concepts of iExec:</p>
<div class="flex items-center gap-3">
<span class="text-xl">🔒</span>
<p class="m-0"><strong>Privacy-preserving Solution:</strong> iExec provides tools to protect sensitive data throughout its entire lifecycle - storage, transfer, and processing</p>
<p class="m-0"><strong>Privacy-preserving Toolkit:</strong> iExec provides tools to protect sensitive data throughout its entire lifecycle - storage, transfer, and processing</p>
</div>
<div class="flex items-center gap-3">
<span class="text-xl">💡</span>
Expand Down
11 changes: 6 additions & 5 deletions src/get-started/helloWorld/2-protectData.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description:
---

<script setup>
import ProtectData from '../../modules/helloWorld/ProtectData.vue';
import ProtectData from '@/modules/helloWorld/ProtectData.vue';
</script>

# 🛡️ Let's Protect Data
Expand All @@ -30,7 +30,7 @@ their dApps with these key features:

- 🔐 **Data Privacy and Security**

Utilizes end-to-end encryption and decentralized storage
Uses end-to-end encryption and decentralized storage
(<a href="https://ipfs.tech/" target="_blank">IPFS</a> or
<a href="https://ar.io/" target="_blank">AR.io</a>) to ensure protection and
confidentiality, leveraging advanced confidential computing technology.
Expand Down Expand Up @@ -95,11 +95,11 @@ button:
</div>
<div class="flex items-center gap-3">
<span class="bg-gray-950 text-sm text-white w-6 h-6 rounded-full flex items-center justify-center font-medium">3</span>
<span>The encrypted data is stored on IPFS</span>
<span>iExec's protocol stores the encrypted data on IPFS</span>
</div>
<div class="flex items-center gap-3">
<span class="bg-gray-950 text-sm text-white w-6 h-6 rounded-full flex items-center justify-center font-medium">4</span>
<span>The symmetric key is stored in a secure enclave (TEE) in the Secret Management Service</span>
<span>iExec's protocol stores the symmetric key in a secure enclave (TEE) in the Secret Management Service</span>
</div>
<div class="flex items-center gap-3">
<span class="bg-gray-950 text-sm text-white w-6 h-6 rounded-full flex items-center justify-center font-medium">5</span>
Expand Down Expand Up @@ -179,7 +179,8 @@ const { address: protectedDataAddress } = await dataProtectorCore.protectData({

- 📦 **Protected Data** is encrypted and stored on decentralized storage

- ⛓️ **Ownership** is stored on the blockchain and linked to your wallet
- ⛓️ **Ownership** iExec's protocol writes ownership on the blockchain and links
it to your wallet

- 🔌 **Integration** is simple with our developer tools

Expand Down
4 changes: 2 additions & 2 deletions src/get-started/helloWorld/4-manageDataAccess.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ description:
---

<script setup>
import GrantAccess from '../../modules/helloWorld/GrantAccess.vue';
import { useWalletConnection } from '../../hooks/useWalletConnection.vue';
import GrantAccess from '@/modules/helloWorld/GrantAccess.vue';
import { useWalletConnection } from '@/hooks/useWalletConnection.vue';

const { protectedDataAddress } = useWalletConnection();
</script>
Expand Down
2 changes: 1 addition & 1 deletion src/get-started/helloWorld/5-bonusChapter.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ description:
</template>

<script setup>
import CouponCode from '../../modules/helloWorld/CouponCode.vue';
import CouponCode from '@/modules/helloWorld/CouponCode.vue';
import Button from '@/components/ui/Button.vue';
import useUserStore from '@/stores/useUser.store';
import { computed } from 'vue';
Expand Down
Loading