🛡️ PStorage#1 – Advanced Guide

Recovery · Groups · Access · Multi-contract strategy · Description field

Protect, share and scale your on-chain storage

Learn how the recovery system works, how to create paid groups, how authorized readers differ from subscribers, why multiple contracts matter, and how to use the description field safely.

🛡️ Recovery system – why it exists and when to use it

Every PermStorage is owned by one wallet. If that wallet is compromised (phishing, leaked private key, malware), the attacker can take control of the contract and of all the media inside it. The recovery system is your safety net.

How it works (simple version)

  • When you create a PermStorage you must set a guardian address (recovery wallet). It must be different from the owner.
  • Only the guardian can start a recovery.
  • There is a 7-day delay (RECOVERY_DELAY) before the recovery can be completed.
  • After the delay, the guardian completes the recovery and ownership is transferred to a new address you choose.
  • Only the guardian can cancel a pending recovery (the owner cannot cancel it).
⚠️ Critical habit if you have subscribers or paying clients
Check your owner wallet and the contract ownership every 4 to 6 days. If a hacker steals your private key, they can start using the contract or even try to sell it. Detecting the problem early lets the guardian initiate recovery and move ownership to a clean wallet before the damage becomes permanent.

When to use recovery

  • You lost access to the owner wallet (seed phrase lost, hardware wallet broken, etc.).
  • You suspect or know the owner key was compromised.
  • You want to move ownership to a new, more secure wallet in a controlled way (still uses the 7-day delay).

How to secure yourself from day one

  1. Create a dedicated guardian wallet (or use a trusted second device / hardware wallet). Never use the same key as the owner.
  2. Store the guardian seed phrase offline in a safe place, separate from the owner seed.
  3. After deployment, verify in the app (Access / recovery section) that the guardian is correctly set and initialized.
  4. If you run a business or have many subscribers: set a calendar reminder every 4–6 days to confirm you still control the owner address.
  5. Never share the guardian private key. The guardian is the only party that can initiate and complete recovery.
✅ Encourage others — Tell every user: “Set a guardian the moment you create the contract. A PermStorage without a working guardian is a single point of failure.”

🎭 Group subscriptions – create, price and sell access

Groups let you package selected media and sell temporary access. A subscriber pays a price + optional subFee and receives access until the expiry time.

Why use groups?

  • Monetize content without selling the whole contract.
  • Time-limited access — perfect for courses, seasonal archives, limited exhibitions.
  • Multiple media in one package — one payment unlocks several files.
  • Recurring revenue — subscribers can renew; expiry is extended if they subscribe again while still active.

How to create a group (app → Groups tab)

  1. Select the PermStorage contract that already contains the media you want to include.
  2. Choose a clear group name (e.g. “Summer 2026 Photo Pack”, “Notary Archive – Q1”).
  3. Select the media IDs that belong to this group (max depends on contract settings, typically up to 100 media per group).
  4. Set a price in native currency (ETH / MATIC / etc.) and a duration (e.g. 30 days, 1 year).
  5. Confirm the transaction. The group becomes active and anyone can subscribe by paying the required amount.

Concrete examples

🎨

Artist / photographer

Create a “Portfolio 2025” group with 12 high-res images. Price: 0.05 ETH for 90 days. Fans rent access instead of buying the whole contract.

📜

Notary / lawyer

Group “Client vault – case 4821”. Only the client pays a yearly fee and can read the timestamped documents. When the case ends, access expires.

🎓

Course creator

Group “Module 3 – Advanced encryption”. Students pay once and keep access for the length of the course. New cohorts = new groups or renewed subscriptions.

🏛️

Museum / archive

Temporary exhibition pack. Visitors pay a small fee for 7-day access to a curated set of historical scans.

💡 Tip — You can set a subscription payout address different from the owner, and the contract takes a small subFee that goes to the fee recipient. Update group name, media list, price or duration later via the update function.

🔑 Access tab – authorized readers vs subscribers

Two different ways to let other people read your media without transferring ownership of the whole contract.

Authorized readerGroup subscriber
Who sets it Contract owner (Access tab) Anyone who pays the group price
Duration Permanent until the owner removes it Time-limited (expires after duration)
Payment Free (owner decides) Paid (price + optional subFee)
Scope Can read any media they are allowed to (usually whole contract logic) Only the media that belong to the group(s) they subscribed to
Best for Family, co-workers, long-term collaborators, yourself on another wallet Customers, temporary access, monetization

How to set an authorized reader

  1. Open the Access tab and select the contract.
  2. Enter the wallet address of the person you want to authorize.
  3. Confirm the transaction. The address is toggled (add or remove).
  4. That address can now call the read functions and download media (they still need the encryption password if the files are encrypted).
Important — Authorized readers and subscribers only get the ability to read the on-chain data. They do not receive the encryption password automatically. You must share the password (or a decrypt key) out-of-band if you want them to see the plaintext content.

📦 Why create or buy several contracts in advance

Each PermStorage is limited to a maximum of 60 media. That is intentional: it keeps gas costs predictable and the contract focused. If you are an artist with hundreds of works, a notary with many cases, or a business that stores client packs, one contract will not be enough.

Strategy recommendations

  • Plan capacity early — During free / early phases, deploying several contracts is cheap or free. Create the ones you will need later while rewards are still available.
  • One contract per project / client / year — Easier accounting, clearer ownership, simpler sale later.
  • Marketplace — You can put entire contracts up for sale. Having “ready-to-use” empty or pre-filled contracts is a business model in itself.

Smart packing: ZIP files

You are not limited to one file per media record. You can:

  • Compress many files into a single .zip (or .7z, .tar, etc.).
  • Upload that archive as one media.
  • Result: 60 media slots = 60 zip archives = potentially thousands of individual files.
Example — A photographer stores 50 wedding albums. Each album is a zip of 200 photos. One PermStorage holds all 50 albums. Another contract holds commercial work, another holds personal archives, etc.

📝 The description field – public memory, not a vault

Every media has a description string stored on-chain. It is not encrypted. Anyone who can call the view functions (owner, authorized readers, valid group subscribers) can read it without any password.

What it is for

  • Helping you remember what the file contains (“Wedding – Alice & Bob – June 2025 – full resolution”).
  • Giving a short public label when you share access.
  • Organizing media lists inside the app.
đźš« Never put in the description
  • Your encryption password
  • Private keys or seed phrases
  • Highly sensitive personal data you would not put on a public bulletin board

Safe password hints

You can leave a subtle reminder that only you understand, for example:

  • “Same place we had the flat tire in 2019”
  • “The restaurant after the concert in Lyon”
  • “Grandma’s birthday year + city of the first exhibition”

These hints help you reconstruct a password you chose yourself. They do not give the password to a stranger.

Protéger, partager et faire évoluer votre stockage on-chain

Comprenez le système de récupération, créez des groupes payants, différenciez lecteurs autorisés et abonnés, multipliez les contrats intelligemment, et utilisez le champ description en toute sécurité.

🛡️ Système de récupération – pourquoi et quand l’utiliser

Chaque PermStorage appartient à un seul portefeuille. Si ce portefeuille est compromis (phishing, clé privée divulguée, malware), l’attaquant peut prendre le contrôle du contrat et de tous les médias. Le système de récupération est votre filet de sécurité.

Fonctionnement (version simple)

  • Ă€ la crĂ©ation d’un PermStorage vous devez dĂ©finir une adresse gardien (recovery wallet). Elle doit ĂŞtre diffĂ©rente du propriĂ©taire.
  • Seul le gardien peut dĂ©marrer une rĂ©cupĂ©ration.
  • Il y a un dĂ©lai de 7 jours avant de pouvoir finaliser la rĂ©cupĂ©ration.
  • Après le dĂ©lai, le gardien termine la rĂ©cupĂ©ration et la propriĂ©tĂ© est transfĂ©rĂ©e vers la nouvelle adresse choisie.
  • Seul le gardien peut annuler une rĂ©cupĂ©ration en cours (le propriĂ©taire ne peut pas l’annuler).
⚠️ Habitude critique si vous avez des abonnés ou des clients payants
Vérifiez votre portefeuille propriétaire et la propriété du contrat tous les 4 à 6 jours. Si un pirate vole votre clé privée, il peut utiliser le contrat ou tenter de le vendre. Détecter le problème tôt permet au gardien de lancer la récupération et de déplacer la propriété vers un portefeuille propre avant que les dégâts ne deviennent définitifs.

Quand utiliser la récupération

  • Vous avez perdu l’accès au portefeuille propriĂ©taire.
  • Vous soupçonnez ou savez que la clĂ© propriĂ©taire a Ă©tĂ© compromise.
  • Vous voulez dĂ©placer la propriĂ©tĂ© vers un portefeuille plus sĂ»r de façon contrĂ´lĂ©e (le dĂ©lai de 7 jours s’applique toujours).

Comment se sécuriser dès le premier jour

  1. Créez un portefeuille gardien dédié (ou utilisez un second appareil / hardware wallet de confiance). N’utilisez jamais la même clé que le propriétaire.
  2. Conservez la phrase de récupération du gardien hors ligne, séparée de celle du propriétaire.
  3. Après le déploiement, vérifiez dans l’app (section Access / recovery) que le gardien est bien initialisé.
  4. Si vous avez une activité ou de nombreux abonnés : programmez un rappel tous les 4–6 jours pour confirmer que vous contrôlez toujours l’adresse propriétaire.
  5. Ne partagez jamais la clé privée du gardien.
✅ Encouragez les autres — Dites à chaque utilisateur : « Définissez un gardien dès la création du contrat. Un PermStorage sans gardien fonctionnel est un point de défaillance unique. »

🎭 Abonnements de groupe – créer, tarifer et vendre l’accès

Les groupes permettent de regrouper des médias sélectionnés et de vendre un accès temporaire. L’abonné paie un prix + éventuellement un subFee et obtient l’accès jusqu’à la date d’expiration.

Pourquoi utiliser les groupes ?

  • MonĂ©tiser le contenu sans vendre tout le contrat.
  • Accès limitĂ© dans le temps — idĂ©al pour des cours, archives saisonnières, expositions limitĂ©es.
  • Plusieurs mĂ©dias dans un pack — un seul paiement dĂ©bloque plusieurs fichiers.
  • Revenus rĂ©currents — les abonnĂ©s peuvent renouveler ; l’expiration est prolongĂ©e s’ils se rĂ©abonnent pendant la pĂ©riode active.

Comment créer un groupe (app → onglet Groups)

  1. Sélectionnez le contrat PermStorage qui contient déjà les médias à inclure.
  2. Choisissez un nom de groupe clair (ex. « Pack Photos Été 2026 », « Archive notariale – T1 »).
  3. Sélectionnez les IDs des médias du groupe.
  4. Définissez un prix en monnaie native et une durée (ex. 30 jours, 1 an).
  5. Confirmez la transaction. Le groupe devient actif et n’importe qui peut s’abonner en payant le montant requis.

Exemples concrets

🎨

Artiste / photographe

Groupe « Portfolio 2025 » avec 12 images haute résolution. Prix : 0,05 ETH pour 90 jours. Les fans louent l’accès au lieu d’acheter tout le contrat.

📜

Notaire / avocat

Groupe « Coffre client – dossier 4821 ». Seul le client paie une redevance annuelle et peut lire les documents horodatés.

🎓

Créateur de formation

Groupe « Module 3 – Chiffrement avancé ». Les étudiants paient une fois et gardent l’accès pendant la durée du cours.

🏛️

Musée / archive

Pack d’exposition temporaire. Les visiteurs paient un petit montant pour 7 jours d’accès à une sélection de scans historiques.

🔑 Onglet Access – lecteurs autorisés vs abonnés

Deux façons différentes de laisser d’autres personnes lire vos médias sans transférer la propriété du contrat entier.

Lecteur autoriséAbonné de groupe
Qui le définit Propriétaire du contrat (onglet Access) Toute personne qui paie le prix du groupe
Durée Permanente jusqu’à ce que le propriétaire la retire Limitée dans le temps (expire après la durée)
Paiement Gratuit (décision du propriétaire) Payant (prix + subFee optionnel)
Périmètre Peut lire les médias auxquels il a accès (logique du contrat) Uniquement les médias des groupes auxquels il est abonné
Idéal pour Famille, collègues, collaborateurs long terme Clients, accès temporaire, monétisation

Comment définir un lecteur autorisé

  1. Ouvrez l’onglet Access et sélectionnez le contrat.
  2. Entrez l’adresse du portefeuille de la personne à autoriser.
  3. Confirmez la transaction. L’adresse est basculée (ajout ou retrait).
  4. Cette adresse peut maintenant appeler les fonctions de lecture et télécharger les médias (elle a toujours besoin du mot de passe de chiffrement si les fichiers sont chiffrés).
Important — Lecteurs autorisés et abonnés n’obtiennent que la capacité de lire les données on-chain. Ils ne reçoivent pas automatiquement le mot de passe de chiffrement. Vous devez le partager hors chaîne si vous voulez qu’ils voient le contenu en clair.

📦 Pourquoi créer ou acheter plusieurs contrats à l’avance

Chaque PermStorage est limité à un maximum de 60 médias. C’est volontaire : cela garde les coûts de gas prévisibles. Si vous êtes artiste avec des centaines d’œuvres, notaire avec de nombreux dossiers, ou entreprise qui stocke des packs clients, un seul contrat ne suffira pas.

Recommandations de stratégie

  • Anticipez la capacitĂ© — Pendant les phases free / early, dĂ©ployer plusieurs contrats est peu coĂ»teux ou gratuit. CrĂ©ez ceux dont vous aurez besoin plus tard pendant que les rĂ©compenses existent encore.
  • Un contrat par projet / client / annĂ©e — ComptabilitĂ© plus simple, propriĂ©tĂ© plus claire, revente plus facile.
  • Marketplace — Vous pouvez mettre des contrats entiers en vente. Avoir des contrats « prĂŞts Ă  l’emploi » est un modèle Ă©conomique en soi.

Astuce intelligente : fichiers ZIP

Vous n’êtes pas limité à un fichier par enregistrement média. Vous pouvez :

  • Compresser de nombreux fichiers dans une seule archive .zip.
  • Uploader cette archive comme un seul mĂ©dia.
  • RĂ©sultat : 60 emplacements = 60 archives zip = potentiellement des milliers de fichiers individuels.
Exemple — Un photographe stocke 50 albums de mariage. Chaque album est un zip de 200 photos. Un seul PermStorage contient les 50 albums.

📝 Le champ description – mémoire publique, pas un coffre

Chaque média a une chaîne description stockée on-chain. Elle n’est pas chiffrée. Toute personne pouvant appeler les fonctions de lecture (propriétaire, lecteurs autorisés, abonnés de groupe valides) peut la lire sans mot de passe.

Ă€ quoi elle sert

  • Vous aider Ă  vous souvenir de ce que contient le fichier.
  • Donner un libellĂ© public court quand vous partagez l’accès.
  • Organiser les listes de mĂ©dias dans l’application.
đźš« Ne mettez jamais dans la description
  • Votre mot de passe de chiffrement
  • Des clĂ©s privĂ©es ou phrases de rĂ©cupĂ©ration
  • Des donnĂ©es personnelles très sensibles

Indices de mot de passe sûrs

Vous pouvez laisser un rappel subtil que vous seul comprenez, par exemple :

  • « L’endroit oĂą on a crevĂ© en 2019 »
  • « Le restaurant après le concert Ă  Lyon »
  • « AnnĂ©e d’anniversaire de mamie + ville de la première expo »

Proteger, compartir y escalar tu almacenamiento on-chain

Aprende cómo funciona el sistema de recuperación, cómo crear grupos de pago, en qué se diferencian los lectores autorizados de los suscriptores, por qué importan varios contratos y cómo usar el campo descripción de forma segura.

🛡️ Sistema de recuperación – por qué existe y cuándo usarlo

Cada PermStorage pertenece a un solo monedero. Si ese monedero se compromete (phishing, clave privada filtrada, malware), el atacante puede tomar el control del contrato y de todos los medios. El sistema de recuperaciĂłn es tu red de seguridad.

CĂłmo funciona (versiĂłn simple)

  • Al crear un PermStorage debes definir una direcciĂłn guardián (recovery wallet). Debe ser distinta del propietario.
  • Solo el guardián puede iniciar una recuperaciĂłn.
  • Hay un retraso de 7 dĂ­as antes de poder completar la recuperaciĂłn.
  • Tras el retraso, el guardián completa la recuperaciĂłn y la propiedad se transfiere a la nueva direcciĂłn que elijas.
  • Solo el guardián puede cancelar una recuperaciĂłn pendiente (el propietario no puede cancelarla).
⚠️ Hábito crítico si tienes suscriptores o clientes de pago
Revisa tu monedero propietario y la propiedad del contrato cada 4 a 6 días. Si un hacker roba tu clave privada, puede usar el contrato o intentar venderlo. Detectar el problema pronto permite al guardián iniciar la recuperación y mover la propiedad a un monedero limpio antes de que el daño sea permanente.

Cuándo usar la recuperación

  • Perdiste el acceso al monedero propietario.
  • Sospechas o sabes que la clave del propietario fue comprometida.
  • Quieres mover la propiedad a un monedero más seguro de forma controlada (el retraso de 7 dĂ­as sigue aplicándose).

CĂłmo asegurarte desde el primer dĂ­a

  1. Crea un monedero guardián dedicado (o usa un segundo dispositivo / hardware wallet de confianza). Nunca uses la misma clave que el propietario.
  2. Guarda la frase semilla del guardián offline, separada de la del propietario.
  3. Tras el despliegue, verifica en la app (sección Access / recovery) que el guardián está correctamente inicializado.
  4. Si tienes un negocio o muchos suscriptores: programa un recordatorio cada 4–6 días para confirmar que sigues controlando la dirección propietaria.
  5. Nunca compartas la clave privada del guardián.
✅ Anima a otros — Di a cada usuario: «Configura un guardián en el momento de crear el contrato. Un PermStorage sin guardián funcional es un único punto de fallo.»

🎭 Suscripciones de grupo – crear, fijar precio y vender acceso

Los grupos permiten empaquetar medios seleccionados y vender acceso temporal. El suscriptor paga un precio + subFee opcional y recibe acceso hasta la fecha de expiraciĂłn.

¿Por qué usar grupos?

  • Monetizar contenido sin vender todo el contrato.
  • Acceso limitado en el tiempo — ideal para cursos, archivos de temporada, exposiciones limitadas.
  • Varios medios en un paquete — un solo pago desbloquea varios archivos.
  • Ingresos recurrentes — los suscriptores pueden renovar; la expiraciĂłn se alarga si se suscriben de nuevo mientras sigue activo.

Cómo crear un grupo (app → pestaña Groups)

  1. Selecciona el contrato PermStorage que ya contiene los medios que quieres incluir.
  2. Elige un nombre de grupo claro (ej. «Pack Fotos Verano 2026», «Archivo notarial – T1»).
  3. Selecciona los IDs de los medios del grupo.
  4. Define un precio en la moneda nativa y una duración (ej. 30 días, 1 año).
  5. Confirma la transacciĂłn. El grupo queda activo y cualquiera puede suscribirse pagando el importe requerido.

Ejemplos concretos

🎨

Artista / fotĂłgrafo

Grupo «Portfolio 2025» con 12 imágenes de alta resolución. Precio: 0,05 ETH por 90 días. Los fans alquilan el acceso en lugar de comprar todo el contrato.

📜

Notario / abogado

Grupo «Caja del cliente – expediente 4821». Solo el cliente paga una cuota anual y puede leer los documentos con marca de tiempo.

🎓

Creador de cursos

Grupo «Módulo 3 – Cifrado avanzado». Los alumnos pagan una vez y mantienen el acceso durante la duración del curso.

🏛️

Museo / archivo

Pack de exposición temporal. Los visitantes pagan una pequeña cantidad por 7 días de acceso a una selección de escaneos históricos.

🔑 Pestaña Access – lectores autorizados vs suscriptores

Dos formas distintas de permitir que otras personas lean tus medios sin transferir la propiedad de todo el contrato.

Lector autorizadoSuscriptor de grupo
Quién lo define Propietario del contrato (pestaña Access) Cualquiera que pague el precio del grupo
DuraciĂłn Permanente hasta que el propietario lo retire Limitada en el tiempo (expira tras la duraciĂłn)
Pago Gratis (decisiĂłn del propietario) De pago (precio + subFee opcional)
Alcance Puede leer los medios a los que tiene acceso Solo los medios de los grupos a los que está suscrito
Ideal para Familia, compañeros, colaboradores a largo plazo Clientes, acceso temporal, monetización

CĂłmo configurar un lector autorizado

  1. Abre la pestaña Access y selecciona el contrato.
  2. Introduce la direcciĂłn del monedero de la persona a autorizar.
  3. Confirma la transacción. La dirección se alterna (añadir o quitar).
  4. Esa dirección puede ahora llamar a las funciones de lectura y descargar medios (sigue necesitando la contraseña de cifrado si los archivos están cifrados).
Importante — Lectores autorizados y suscriptores solo obtienen la capacidad de leer los datos on-chain. No reciben automáticamente la contraseña de cifrado. Debes compartirla fuera de la cadena si quieres que vean el contenido en claro.

📦 Por qué crear o comprar varios contratos por adelantado

Cada PermStorage está limitado a un máximo de 60 medios. Es intencional: mantiene los costes de gas predecibles. Si eres artista con cientos de obras, notario con muchos expedientes, o un negocio que almacena packs de clientes, un solo contrato no bastará.

Recomendaciones de estrategia

  • Planifica la capacidad pronto — Durante las fases free / early, desplegar varios contratos es barato o gratis. Crea los que necesitarás más adelante mientras existan las recompensas.
  • Un contrato por proyecto / cliente / año — Contabilidad más sencilla, propiedad más clara, reventa más fácil.
  • Marketplace — Puedes poner contratos enteros a la venta. Tener contratos «listos para usar» es un modelo de negocio en sĂ­ mismo.

Empaquetado inteligente: archivos ZIP

No estás limitado a un archivo por registro de medio. Puedes:

  • Comprimir muchos archivos en un solo .zip.
  • Subir ese archivo como un solo medio.
  • Resultado: 60 ranuras = 60 archivos zip = potencialmente miles de archivos individuales.
Ejemplo — Un fotógrafo almacena 50 álbumes de boda. Cada álbum es un zip de 200 fotos. Un solo PermStorage contiene los 50 álbumes.

📝 El campo descripción – memoria pública, no una caja fuerte

Cada medio tiene una cadena description almacenada on-chain. No está cifrada. Cualquiera que pueda llamar a las funciones de lectura (propietario, lectores autorizados, suscriptores de grupo válidos) puede leerla sin contraseña.

Para qué sirve

  • Ayudarte a recordar quĂ© contiene el archivo.
  • Dar una etiqueta pĂşblica corta cuando compartes el acceso.
  • Organizar las listas de medios dentro de la aplicaciĂłn.
đźš« Nunca pongas en la descripciĂłn
  • Tu contraseña de cifrado
  • Claves privadas o frases semilla
  • Datos personales muy sensibles

Pistas de contraseña seguras

SĂ­ puedes dejar un recordatorio sutil que solo tĂş entiendas, por ejemplo:

  • «El lugar donde se nos pinchĂł la rueda en 2019»
  • «El restaurante despuĂ©s del concierto en Lyon»
  • «Año del cumpleaños de la abuela + ciudad de la primera exposiciĂłn»