Comment marche une clé
Un petit contrat vend les clés. Une passerelle les vérifie avant que rien ne s'ouvre.
Le cycle de vie
- 01
Règle
Prix, jeton et ce qu'achète une unité.
- 02
Paiement
Unités × prix, en une transaction.
- 03
Clé
Détenteur, début, fin ou usages, on-chain.
- 04
Vérification
La passerelle lit la clé on-chain.
- 05
Ouverture
Une serrure s'ouvre ou un contenu apparaît.
- 06
Expiration
Temps ou entrées épuisés : ça reste fermé.
renouveler: Expiration → Paiement
La règle
Une par accès. Elle ne change jamais une clé déjà vendue.
| Champ | Sens | Terrain 2 de Riverside |
|---|---|---|
| mode | time, uses ou forever | uses |
| price | Prix d'une unité | 15 |
| token | Jeton accepté par le contrat | tUSDC |
| unit | Minutes ou entrées par unité | 10 entrées |
| maxUnits | Nombre maximal d'unités par achat | 2 |
| action | Action après vérification | webhook gate.unlock |
Ce que le contrat enregistre
Chaque achat crée une clé et émet un événement.
Le renouvellement part de la plus tardive : maintenant ou l'échéance actuelle.
Voir les événements du contrat
event KeyPurchased(
uint256 indexed tokenId,
bytes32 indexed gateId,
address indexed holder,
uint64 start,
uint64 end, // 0 for metered and forever keys
uint32 uses, // 0 for time and forever keys
uint256 paid
);
event KeyUsed(uint256 indexed tokenId, uint32 usesLeft);
event KeyRenewed(uint256 indexed tokenId, uint64 end, uint32 uses, uint256 paid);
function accessOf(uint256 tokenId)
external view
returns (bytes32 gateId, address holder, uint64 end, uint32 usesLeft, bool forever);Ce que fait la passerelle
À chaque ouverture, elle :
- 1trouve la clé et vérifie l'accès ;
- 2la refuse si l'accès est suspendu, ou la clé expirée ou épuisée ;
- 3décompte une entrée, pour les clés à l'usage ;
- 4ouvre la serrure ou affiche le contenu ;
- 5inscrit la vérification et son résultat.
Voir le webhook
Webhook envoyé à la grille d'un terrain
POST https://gates.harbourview-parks.example/riverside-2/unlock
X-GatePay-Signature: t=1759152131,v1=6f0c…e41a
{
"event": "gate.unlock",
"gate": "riverside-court",
"key": "GP-4K7Q-2M",
"holder": "0x5ae1…c3B9",
"validUntil": "2026-09-29T16:02:11Z",
"block": 6512344,
"pin": "482913",
"holdOpenSeconds": 10
}Signé ; la serrure ignore les appels non signés ou périmés.
Où ça se branche
La passerelle parle au matériel qu'on trouve déjà en magasin, et à votre propre code.
Physique
Serrures connectées
Les serrures Wi-Fi ou Bluetooth reçoivent un NIP ou une ouverture par appli, le temps de la clé.
Claviers hors ligne
Des NIP limités dans le temps, calculés sans réseau. Idéal pour un terrain clôturé.
Lecteurs NFC et QR
Tourniquets et grilles lisent un téléphone ou un code.
Relais
Un petit contrôleur actionne le moteur d'une grille ou l'éclairage d'un terrain.
Numérique
SDK web
Un seul appel vérifie la clé et débloque le contenu dans votre page.
Webhooks
Des appels signés vers votre serveur après chaque vérification.
Le SDK, en un appel
import { GatePay } from "@gatepay/sdk"
const gatepay = new GatePay({ chain: "base-sepolia" })
// Checks the visitor's key on-chain, then reveals the content.
const access = await gatepay.unlock("rooftop-session", { wallet })
if (access.ok) player.play(access.stream)À titre d'illustration : dans cette démo, le SDK et le matériel sont simulés.
Pour aller plus loin
- Tarif à la minute pour les diffusions.
- Une clé pour plusieurs accès, comme tous les terrains d'un parc.
- Un éclairage qui s'allume seulement pendant la clé d'un terrain.
- Des clés transférables, si le propriétaire autorise la revente.
