Skip to content

Commit b06c9e4

Browse files
committed
refactor: update sidebar and enhance monetization guide content
- Changed sidebar text from 'DataProtector Core' to 'Methods' for clarity. - Revised introduction of the monetization guide to emphasize transforming encrypted data into a revenue stream. - Streamlined content by removing outdated sections on time-based access and focusing on signed orders for monetization.
1 parent 9fd48b9 commit b06c9e4

File tree

2 files changed

+4
-209
lines changed

2 files changed

+4
-209
lines changed

.vitepress/sidebar.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ export function getSidebar() {
222222
link: '/references/dataProtector/getting-started',
223223
},
224224
{
225-
text: 'DataProtector Core',
225+
text: 'Methods',
226226
link: '/references/dataProtector/methods',
227227
collapsed: true,
228228
items: [

src/guides/manage-data/monetize-protected-data.md

Lines changed: 3 additions & 208 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,11 @@ description:
1010

1111
# 💰 Monetize Protected Data
1212

13-
**Your protected data can generate revenue automatically.**
13+
**Transform your encrypted data into a sustainable revenue stream.**
1414

15-
iExec provides two fundamental approaches for monetizing your data:
15+
iExec DataProtector enables you to monetize your protected data through **signed orders** - a flexible system that lets you specify exact conditions for data access. Whether you're a data provider, researcher, or business owner, you can generate income from your valuable datasets while maintaining complete privacy and control.
1616

17-
- **DataProtector Core**: **Signed orders** with pay-per-use counting - specify
18-
exact conditions, users pay for each individual data processing
19-
- **DataProtector Sharing**: **Time-based access** with period payments - users
20-
pay for unlimited access during specific time periods
17+
**How it works**: You create and publish signed orders that define who can access your data, how much they pay per use, and how many times they can access it. Users pay automatically each time they process your data, giving you precise control over monetization.
2118

2219
## 📝 Signed Orders (DataProtector Core)
2320

@@ -54,205 +51,3 @@ console.log('Signed order created:', grantedAccess);
5451
- Precise control over access conditions
5552
- Simple setup with specific partners
5653
- Exact counting of data usage
57-
58-
## 📅 Time-Based Access Implementation (DataProtector Sharing)
59-
60-
**How it works**: Instead of counting individual uses, DataProtector Sharing
61-
provides **time-based access periods**. Users purchase access for specific
62-
durations (hours, days, months) and can use your protected data unlimited times
63-
during that period. Smart contracts handle all distribution automatically.
64-
65-
**Key Innovation**: Shift from usage counting to time-based access - users buy
66-
access time, not individual transactions.
67-
68-
**Access Models Available**:
69-
70-
- **Rental**: Pay once to access to individual protected data (not all the
71-
collection)
72-
- **Subscription**: Recurring payments for ongoing access
73-
- **Sale**: Permanent ownership transfer
74-
75-
::: tip See It Live
76-
77-
The [Content Creator demo](/get-started/use-cases) shows DataProtector Sharing
78-
in action with file monetization. While it uses the content-delivery iApp for
79-
file streaming, the same patterns work for any iApp - AI models, data
80-
processing, oracles, etc.
81-
82-
:::
83-
84-
### **Step 1: Create a Collection**
85-
86-
```ts twoslash
87-
import {
88-
IExecDataProtectorSharing,
89-
getWeb3Provider,
90-
} from '@iexec/dataprotector';
91-
92-
const web3Provider = getWeb3Provider('PRIVATE_KEY');
93-
const dataProtectorSharing = new IExecDataProtectorSharing(web3Provider);
94-
// ---cut---
95-
// Create a collection to group your data and provide
96-
// a set of protectedData available for the subscription.
97-
const collection = await dataProtectorSharing.createCollection();
98-
console.log('Collection address:', collection.collectionId);
99-
100-
// Add your protected data to the collection
101-
await dataProtectorSharing.addToCollection({
102-
protectedData: '0x123abc...', // Your protected data address
103-
collectionId: collection.collectionId,
104-
addOnlyAppWhitelist: '0x256bcd881c33bdf9df952f2a0148f27d439f2e64', // iExec apps whitelist
105-
});
106-
```
107-
108-
### **Step 2: Choose your Distribution Model**
109-
110-
**DataProtector Sharing offers three distribution models:**
111-
112-
#### **Time-Based Rental Model**
113-
114-
Users pay once for **unlimited access during a specific time period** (not per
115-
use). For a specific protectedData of the created collection :
116-
117-
```ts twoslash
118-
import {
119-
IExecDataProtectorSharing,
120-
getWeb3Provider,
121-
} from '@iexec/dataprotector';
122-
123-
const web3Provider = getWeb3Provider('PRIVATE_KEY');
124-
const dataProtectorSharing = new IExecDataProtectorSharing(web3Provider);
125-
// ---cut---
126-
// DATA OWNER: Set up time-based rental terms
127-
await dataProtectorSharing.setProtectedDataToRenting({
128-
protectedData: '0x123abc...',
129-
price: 5000000000, // 5 RLC for the entire period
130-
duration: 604800, // 7 days of unlimited access
131-
});
132-
133-
// CLIENT/SUBSCRIBER: Rent access for the full time period
134-
const rental = await dataProtectorSharing.rentProtectedData({
135-
protectedData: '0x123abc...',
136-
price: 5000000000, // One payment for full period
137-
duration: 604800, // Unlimited use for 7 days
138-
});
139-
```
140-
141-
**Perfect for**:
142-
143-
- Time-sensitive datasets (event data, seasonal trends)
144-
- Expensive datasets where users need intensive short-term access
145-
- Content that loses value over time
146-
- Users who need to run multiple analyses during a period
147-
148-
#### **Time-Based Subscription Model**
149-
150-
Users pay for **recurring time-based access** to a bundle of data. Unlimited
151-
usage during each subscription period.
152-
153-
```ts twoslash
154-
import {
155-
IExecDataProtectorSharing,
156-
getWeb3Provider,
157-
} from '@iexec/dataprotector';
158-
159-
const web3Provider = getWeb3Provider('PRIVATE_KEY');
160-
const dataProtectorSharing = new IExecDataProtectorSharing(web3Provider);
161-
162-
// Mock collection for the example
163-
const collection = { collectionId: 123 };
164-
// ---cut---
165-
// DATA OWNER: Set time-based subscription parameters
166-
await dataProtectorSharing.setSubscriptionParams({
167-
collectionId: collection.collectionId,
168-
price: 20000000000, // 20 RLC per 30-day period
169-
duration: 2592000, // 30 days unlimited access
170-
});
171-
172-
// DATA OWNER: Add protected data to the time-based subscription bundle
173-
await dataProtectorSharing.setProtectedDataToSubscription({
174-
protectedData: '0x123abc...',
175-
});
176-
177-
// DATA OWNER: Add more data to the same subscription
178-
await dataProtectorSharing.setProtectedDataToSubscription({
179-
protectedData: '0x456def...', // Additional dataset
180-
});
181-
182-
// CLIENT/SUBSCRIBER: Get time-based subscription access
183-
const subscription = await dataProtectorSharing.subscribeToCollection({
184-
collectionId: collection.collectionId,
185-
price: 20000000000, // Pay for full period
186-
duration: 2592000, // 30 days unlimited usage
187-
});
188-
```
189-
190-
**Perfect for**:
191-
192-
- Growing datasets (daily market data, news feeds)
193-
- Educational content series
194-
- Research datasets that expand over time
195-
- SaaS-style data access
196-
197-
#### **Sale Model**
198-
199-
Transfer permanent ownership of your data to the buyer.
200-
201-
```ts twoslash
202-
import {
203-
IExecDataProtectorSharing,
204-
getWeb3Provider,
205-
} from '@iexec/dataprotector';
206-
207-
const web3Provider = getWeb3Provider('PRIVATE_KEY');
208-
const dataProtectorSharing = new IExecDataProtectorSharing(web3Provider);
209-
// ---cut---
210-
// DATA OWNER: List data for sale
211-
await dataProtectorSharing.setProtectedDataForSale({
212-
protectedData: '0x123abc...',
213-
price: 100000000000, // 100 RLC purchase price
214-
});
215-
216-
// CLIENT/BUYER: Purchase ownership
217-
const purchase = await dataProtectorSharing.buyProtectedData({
218-
protectedData: '0x123abc...',
219-
price: 100000000000,
220-
});
221-
```
222-
223-
**Perfect for**:
224-
225-
- Unique datasets or models
226-
- Digital assets and NFT data
227-
- One-time valuable insights
228-
- When you want to exit data ownership
229-
230-
## Which approach to choose?
231-
232-
| **Signed Orders (Core)** | **Time-Based Access (Sharing)** |
233-
| ---------------------------- | ------------------------------- |
234-
| Usage counting & pay-per-use | Time periods & unlimited usage |
235-
| Direct signed orders | Smart contract automation |
236-
| High control, simple setup | Medium control, flexible models |
237-
238-
**Choose Signed Orders when**: You need precise control, direct partnerships,
239-
and usage-based billing.
240-
241-
**Choose Time-Based Access when**: You want automated distribution, unlimited
242-
usage periods, and flexible pricing models.
243-
244-
## Next steps
245-
246-
**Ready to start monetizing your data?** Here are your next steps:
247-
248-
- **See it in action**: Try the [Content Creator demo](/get-started/use-cases)
249-
to understand the full flow
250-
- **Start simple**: Begin with
251-
[pay-per-use via grantAccess](/guides/manage-data/manage-access)
252-
- **Explore sharing**: Try
253-
[DataProtector Sharing](/references/dataProtector/dataProtectorSharing) for
254-
automated distribution
255-
- **Build collections**: Learn about
256-
[collection management](/references/dataProtector/dataProtectorSharing/collection)
257-
- **Set up subscriptions**: Implement
258-
[recurring revenue models](/references/dataProtector/dataProtectorSharing/subscription)

0 commit comments

Comments
 (0)