DeHubOuvrir DeHub

DeHub › Documentation

Créez une mini-app DeHub — SDK et manifeste

Une mini-app est un site web ordinaire qui tourne dans DeHub. DeHub dessine l’en-tête avec le nom et le vrai domaine de votre app, et votre app parle à DeHub via un petit SDK. La même app tourne sur dehub.io et dans l’app mobile DeHub sans modification.

Ajoutez le SDK

<script src="https://riftn.com/sdk/miniapp.js"></script>
<script>
  // Hide the splash screen once your first screen is on.
  dehub.ready();

  const { user, client } = await dehub.context;
  if (user) console.log('Hi', user.handle);
</script>

Le SDK ajoute une variable globale, dehub. Chaque appel renvoie une promesse. En dehors de DeHub, dehub.isInDehub() vaut false et les appels échouent, vous pouvez donc utiliser la même page seule.

Méthodes du SDK

MéthodeCe qu’elle fait
dehub.ready()Masque l’écran de démarrage.
dehub.close()Ferme votre app.
dehub.contextSe résout en { user, location, client }. user vaut { wallet, handle, displayName, avatarUrl } ou null hors connexion. client contient platform (web ou mobile), added, locale, theme et le safeAreaInsets.
dehub.getCapabilities()Les méthodes prises en charge par cet hôte.
dehub.auth.getToken()Un jeton signé qui prouve qui est l’utilisateur, pour votre serveur. Le premier appel demande à l’utilisateur de partager son identité. Voir Connexion avec DeHub.
dehub.actions.composePost({ text, embedUrl })Ouvre l’éditeur DeHub avec votre texte et un lien facultatif vers votre app (500 caractères maximum).
dehub.actions.viewProfile({ handle })Ouvre un profil DeHub.
dehub.actions.viewPost({ id })Ouvre une publication DeHub par son id numérique.
dehub.actions.openUrl(url)Ouvre un lien https en dehors de votre app.
dehub.actions.addApp()Demande à l’utilisateur d’ajouter votre app, ce qui autorise aussi les notifications.
dehub.actions.pay({ amount, memo })Demande à l’utilisateur de vous payer en DHB. Voir Paiements.
dehub.haptics.impact(style)Une courte vibration sur téléphone : light, medium ou heavy.
dehub.on(event, fn)Écoute les événements de l’hôte. Renvoie une fonction qui arrête l’écoute.

Quand DeHub refuse une demande, la promesse échoue avec une erreur dotée d’un code: signin (l’utilisateur n’est pas connecté), rejected (l’utilisateur a refusé), invalid (paramètres invalides), rate_limited, busy (une autre demande est déjà ouverte), unsupported ou failed.

Le manifeste : dehub.json

Servez ce fichier à https://your-domain/.well-known/dehub.json. Il indique à la boutique le nom de votre app, l’icône à afficher et son propriétaire.

{
  "app": {
    "name": "Tip Jar",
    "homeUrl": "https://tipjar.example.com/",
    "iconUrl": "https://tipjar.example.com/icon-1024.png",
    "subtitle": "Say thanks in DHB",
    "description": "A tip jar for creators. One tap, paid straight to the creator's wallet.",
    "category": "finance",
    "tags": ["tips", "creators"],
    "splashBackgroundColor": "#0B0B0B",
    "screenshotUrls": ["https://tipjar.example.com/shot-1.png"],
    "webhookUrl": "https://tipjar.example.com/api/dehub-webhook",
    "permissions": ["wallet", "notifications"]
  },
  "ownership": {
    "address": "0xYourDehubWallet",
    "domain": "tipjar.example.com",
    "signature": "0x…"
  }
}
ChampRègles
nameObligatoire. 32 caractères maximum.
homeUrlObligatoire. https, sur le même domaine que le manifeste.
iconUrlObligatoire. https. Un PNG de 1024×1024 sans transparence.
subtitle30 caractères maximum.
descriptionRecommandé. 170 caractères maximum.
categoryRecommandé. L’une des valeurs : games, social, finance, utility, productivity, health-fitness, news-media, music, shopping, education, developer-tools, entertainment, art-creativity.
tagsJusqu’à 5. Minuscules, chiffres ou tirets, 20 caractères chacun.
screenshotUrlsJusqu’à 3 images https.
splashBackgroundColorUne couleur hexadécimale comme #0B0B0B.
webhookUrlhttps. Reçoit les événements webhook.
webhookEventsFacultatif. Au choix : tip, follow, mention. Événements du compte du portefeuille propriétaire, envoyés à webhookUrl.
permissionsN’importe lesquelles parmi : wallet, compose, notifications, camera.

Prouvez que le domaine vous appartient

Le bloc ownership est la signature, par votre portefeuille DeHub, de ce message exact, dont la deuxième ligne est votre domaine :

dehub mini app ownership
tipjar.example.com

Inutile de le signer à la main. Sur dehub.io/apps/dev, vérifiez votre lien et appuyez sur Signer pour obtenir un bloc prêt à coller. Les paiements vont au portefeuille signataire, et seul ce portefeuille peut mettre à jour la fiche ou créer une clé de notification.

Cartes enrichies dans le fil

Quand quelqu’un publie votre lien, DeHub affiche une carte avec un bouton qui ouvre votre app. Ajoutez cette balise dans le <head> de la page (la balise fc:miniapp est lue aussi) :

<meta name="dehub:miniapp" content='{"version":"1","imageUrl":"https://tipjar.example.com/card-3x2.png","button":{"title":"Open Tip Jar","action":{"url":"https://tipjar.example.com/"}}}'>

Paiements en DHB

const { txHash, chainId, amount, receipt } = await dehub.actions.pay({
  amount: 50,          // DHB, whole numbers, up to 1,000,000
  memo: 'Order #1042', // optional, 140 characters
});

// Send `receipt` to your server and verify it there.
await fetch('/api/orders/1042/paid', { method: 'POST', body: receipt });

DeHub affiche le montant, votre app et votre portefeuille, l’utilisateur confirme dans son portefeuille, et DeHub vérifie le transfert sur la chaîne (Base ou BNB Chain) avant de répondre. Le receipt est un jeton signé avec typ: "payment", sub (le portefeuille du payeur), aud (votre domaine), amount, token, chainId, txHash et le memo. Vérifiez-le exactement comme un jeton de connexion. Seules les apps enregistrées avec un manifeste signé peuvent encaisser des paiements.

Mode test. Quand vous ouvrez votre propre app sur DeHub avec le portefeuille propriétaire, les paiements sont simulés : rien ne bouge sur la chaîne, et le reçu et le payment webhook portent test: true, chainId: 0 et un txHash commençant par test_. Ne livrez jamais de biens payants pour un reçu de test en production.

Soumission et validation

Les validateurs vérifient que l’app se charge, fonctionne sur téléphone, correspond à sa fiche et n’imite pas DeHub. Mettre à jour le manifeste et soumettre à nouveau met à jour la fiche.

Récompenses hebdomadaires

Chaque nuit, DeHub classe les apps listées selon leur usage réel : personnes connectées qui reviennent (55 %), utilisateurs de la semaine (35 %), plus un coup de pouce pendant les 14 premiers jours d’une app. Chaque lundi, la part hebdomadaire de la cagnotte mensuelle de DHB est répartie selon le score. Pour y prétendre, une app doit avoir un portefeuille propriétaire vérifié et au moins 3 utilisateurs qui reviennent. Le classement et les récompenses passées sont sur dehub.io/apps/dev.

Blog DeHub · Accueil de dehub.io