DeHubDeHub openen

DeHub › Documentatie

Bouw een DeHub-mini-app — SDK en manifest

Een mini-app is een gewone website die binnen DeHub draait. DeHub tekent de kop met de naam en het echte domein van je app, en je app praat met DeHub via een kleine SDK. Dezelfde app draait zonder aanpassingen op dehub.io en in de DeHub-telefoonapp.

Voeg de SDK toe

<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>

De SDK voegt één globale variabele toe, dehub. Elke aanroep geeft een promise terug. Buiten DeHub is dehub.isInDehub() false en mislukken aanroepen, zodat je dezelfde pagina ook los kunt gebruiken.

SDK-methoden

MethodeWat het doet
dehub.ready()Verbergt het opstartscherm.
dehub.close()Sluit je app.
dehub.contextLevert { user, location, client }. user is { wallet, handle, displayName, avatarUrl } of null als iemand niet is ingelogd. client bevat platform (web of mobile), added, locale, theme en de safeAreaInsets.
dehub.getCapabilities()De methoden die deze host ondersteunt.
dehub.auth.getToken()Een ondertekend token dat bewijst wie de gebruiker is, voor je server. De eerste aanroep vraagt de gebruiker om hun identiteit te delen. Zie Inloggen met DeHub.
dehub.actions.composePost({ text, embedUrl })Opent de DeHub-editor met je tekst en een optionele link terug naar je app (maximaal 500 tekens).
dehub.actions.viewProfile({ handle })Opent een DeHub-profiel.
dehub.actions.viewPost({ id })Opent een DeHub-bericht via het numerieke id.
dehub.actions.openUrl(url)Opent een https-link buiten je app.
dehub.actions.addApp()Vraagt de gebruiker om je app toe te voegen, wat ook meldingen toestaat.
dehub.actions.pay({ amount, memo })Vraagt de gebruiker om je in DHB te betalen. Zie Betalingen.
dehub.haptics.impact(style)Een korte trilling op telefoons: light, medium of heavy.
dehub.on(event, fn)Luister naar events van de host. Geeft een functie terug die stopt met luisteren.

Als DeHub een verzoek weigert, mislukt de promise met een fout die een code: signin (de gebruiker is niet ingelogd), rejected (de gebruiker zei nee), invalid (ongeldige parameters), rate_limited, busy (er staat al een ander verzoek open), unsupported of failed.

Het manifest: dehub.json

Zet dit bestand op https://your-domain/.well-known/dehub.json. Het vertelt de winkel hoe je app heet, welk pictogram te tonen en wie de eigenaar is.

{
  "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…"
  }
}
VeldRegels
nameVerplicht. Maximaal 32 tekens.
homeUrlVerplicht. https, op hetzelfde domein als het manifest.
iconUrlVerplicht. https. Een PNG van 1024×1024 zonder transparantie.
subtitleMaximaal 30 tekens.
descriptionAanbevolen. Maximaal 170 tekens.
categoryAanbevolen. Een van: games, social, finance, utility, productivity, health-fitness, news-media, music, shopping, education, developer-tools, entertainment, art-creativity.
tagsMaximaal 5. Kleine letters, cijfers of streepjes, elk maximaal 20 tekens.
screenshotUrlsMaximaal 3 https-afbeeldingen.
splashBackgroundColorEen hexkleur zoals #0B0B0B.
webhookUrlhttps. Ontvangt webhook-events.
webhookEventsOptioneel. Een van: tip, follow, mention. Accountgebeurtenissen voor de eigenaarswallet, verstuurd naar webhookUrl.
permissionsEen of meer van: wallet, compose, notifications, camera.

Bewijs dat het domein van jou is

Het ownership -blok is de handtekening van je DeHub-wallet onder precies dit bericht, waarbij de tweede regel je domein is:

dehub mini app ownership
tipjar.example.com

Je hoeft het niet met de hand te ondertekenen. Controleer op dehub.io/apps/devje link en druk op Ondertekenen voor een kant-en-klaar blok om te plakken. Betalingen gaan naar de wallet die ondertekende, en alleen die wallet kan de vermelding bijwerken of een meldingssleutel maken.

Uitgebreide kaarten in de feed

Als iemand je link plaatst, toont DeHub een kaart met een knop die je app opent. Voeg deze tag toe aan de <head> van de pagina (de fc:miniapp -tag wordt ook gelezen):

<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/"}}}'>

Betalingen in 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 toont het bedrag, je app en je wallet, de gebruiker bevestigt in hun wallet, en DeHub controleert de overboeking op de chain (Base of BNB Chain) voordat het antwoordt. De receipt is een ondertekend token met typ: "payment", sub (de wallet van de betaler), aud (je domein), amount, token, chainId, txHash en de memo. Controleer het precies zoals een inlogtoken. Alleen geregistreerde apps met een ondertekend manifest kunnen betalingen ontvangen.

Testmodus. Open je je eigen app op DeHub met de wallet die eigenaar is, dan worden betalingen gesimuleerd: er gaat niets on-chain over, en het bewijs en de payment webhook bevatten test: true, chainId: 0 en een txHash die begint met test_. Lever nooit betaalde zaken voor een testbewijs in productie.

Indienen en beoordeling

Beoordelaars controleren of de app laadt, op een telefoon werkt, klopt met de vermelding en DeHub niet nadoet. Je manifest bijwerken en opnieuw indienen werkt de vermelding bij.

Wekelijkse beloningen

Elke nacht rangschikt DeHub vermelde apps op echt gebruik: ingelogde mensen die terugkomen (55%), wekelijkse gebruikers (35%), plus een extraatje in de eerste 14 dagen van een app. Elke maandag wordt het weekdeel van de maandelijkse DHB-beloningspot verdeeld op score. Om mee te doen heeft een app een geverifieerde eigenaar-wallet en minstens 3 terugkerende gebruikers nodig. De ranglijst en eerdere beloningen staan op dehub.io/apps/dev.

DeHub-blog · Startpagina van dehub.io