Deutsch
Deutsch
Appearance
Deutsch
Deutsch
Appearance
IPNS (InterPlanetary Name System) bietet Ihnen stabile, teilbare Adressen, die aktualisiert werden können, um im Laufe der Zeit auf unterschiedliche Inhalte zu verweisen. Während sich IPFS-CIDs bei jeder Inhaltsänderung ändern, bleibt ein IPNS-Name gleich — Sie aktualisieren lediglich, worauf er verweist.
Verfügbar in den Plänen Bodhi (3 Namen, 100 Veröffentlichungen/Monat) und Nirvana (10 Namen, 1.000 Veröffentlichungen/Monat).
Mehr über IPNS erfahren
Für einen tieferen Einblick in die Funktionsweise von IPNS auf Protokollebene, siehe die offizielle IPFS-Dokumentation zu IPNS.

Das Problem: Jedes Mal, wenn Sie eine neue Version einer Datei auf IPFS hochladen, erhalten Sie einen anderen CID. Wenn Sie den alten CID mit Benutzern geteilt haben, sehen diese weiterhin den alten Inhalt. Sie müssten jedes Mal einen neuen Link teilen.
Die Lösung: Erstellen Sie einmalig einen IPNS-Namen, teilen Sie ihn und aktualisieren Sie, worauf er verweist, wann immer sich Ihr Inhalt ändert. Jeder mit der IPNS-Adresse erhält immer die neueste Version.
tokenURI Ihres NFTs auf eine IPNS-Adresse. Aktualisieren Sie die Metadaten (z. B. Spielgegenstand steigt im Level auf), ohne den Smart Contract zu ändern.https://yourdomain.com immer die neuesten IPFS-Inhalte ausliefert.k51...) — dies ist Ihre permanente, teilbare Adresse.
QmXk7VRz... oder bafybei...).https://ipfs.ninja/ipns/{your-ipns-name}https://dweb.link/ipns/{your-ipns-name}ipns://{your-ipns-name}
Wenn sich Ihr Inhalt ändert:
Verwenden Sie den Abschnitt Auflösen am Ende der Seite, um den aktuellen CID für einen beliebigen IPNS-Namen nachzuschlagen — Ihren eigenen oder den eines anderen.
Klicken Sie auf die Schaltfläche Löschen neben einem beliebigen Namen. Der IPNS-Eintrag wird innerhalb von 48 Stunden aus dem Netzwerk ablaufen.
Sie können Ihren eigenen Domainnamen mit DNSLink auf eine IPNS-Adresse verweisen. So können Benutzer über eine reguläre URL wie https://yourdomain.com auf Ihre IPFS-Inhalte zugreifen.
Erstellen Sie einen IPNS-Namen und veröffentlichen Sie Ihren Inhalts-CID dafür (Schritte oben).
Fügen Sie einen DNS-TXT-Eintrag bei Ihrem DNS-Anbieter hinzu:
_dnslink.yourdomain.com TXT "dnslink=/ipns/{your-ipns-name}"Beispiel: Wenn Ihr IPNS-Name k51qzi5uqu5djcpbukxs... lautet:
_dnslink.myapp.com TXT "dnslink=/ipns/k51qzi5uqu5djcpbukxs..."Überprüfen Sie den Eintrag mit dig oder nslookup:
dig +short TXT _dnslink.myapp.com
# Sollte zurückgeben: "dnslink=/ipns/k51qzi5uqu5djcpbukxs..."Zugriff über jedes IPFS-Gateway, das DNSLink unterstützt:
https://ipfs.ninja/ipns/myapp.comOder über einen Browser mit IPFS-Unterstützung (wie Brave):
ipns://myapp.comDNS-Propagation
DNS-Änderungen können bis zu 24 Stunden für die weltweite Propagation benötigen. Warten Sie nach dem Hinzufügen des TXT-Eintrags einige Stunden, bevor Sie testen.
TIP
Sie müssen DNSLink nur einmal einrichten. Wenn Sie einen neuen CID unter Ihrem IPNS-Namen veröffentlichen, löst die Domain automatisch zum neuen Inhalt auf — keine DNS-Änderungen erforderlich.
Wenn Sie Cloudflare verwenden:
_dnslink, Inhalt: dnslink=/ipns/k51..._dnslink.yourdomain.com, Typ: TXT, Wert: "dnslink=/ipns/k51..."# 1. Build your site
npm run build
# 2. Upload the build output to IPFS
CID=$(curl -s -X POST https://api.ipfs.ninja/upload/new \
-H "X-Api-Key: bws_your_api_key" \
-H "Content-Type: application/json" \
-d "{\"content\": $(cat dist/index.html | base64 -w0 | jq -Rs .), \"description\": \"Website v2.1\"}" \
| jq -r '.cid')
echo "Uploaded: $CID"
# 3. Update your IPNS name to point to the new build
curl -X POST https://api.ipfs.ninja/ipns/publish \
-H "X-Api-Key: bws_your_api_key" \
-H "Content-Type: application/json" \
-d "{\"ipnsName\": \"k51qzi5uqu5dlvj2bv6...\", \"cid\": \"$CID\"}"
# Your site at ipns://k51... now serves the new version// Smart contract points tokenURI to IPNS address:
// tokenURI = "ipns://k51qzi5uqu5dlvj2bv6..."
// When the NFT evolves (e.g., game item levels up):
const newMetadata = {
name: "Dragon Sword",
description: "A legendary weapon — Level 5",
image: "ipfs://QmNewImageCID...",
attributes: [
{ trait_type: "Level", value: 5 },
{ trait_type: "Damage", value: 150 }
]
};
// Upload new metadata
const uploadRes = await fetch("https://api.ipfs.ninja/upload/new", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Api-Key": "bws_your_api_key"
},
body: JSON.stringify({ content: newMetadata, description: "Dragon Sword v5" })
});
const { cid } = await uploadRes.json();
// Update the IPNS pointer — tokenURI stays the same!
await fetch("https://api.ipfs.ninja/ipns/publish", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Api-Key": "bws_your_api_key"
},
body: JSON.stringify({ ipnsName: "k51qzi5uqu5dlvj2bv6...", cid })
});# GitHub Actions: auto-publish to IPNS on every push
- name: Upload to IPFS and publish IPNS
run: |
CID=$(curl -s -X POST https://api.ipfs.ninja/upload/new \
-H "X-Api-Key: ${{ secrets.IPFS_NINJA_API_KEY }}" \
-H "Content-Type: application/json" \
-d '{"content": '"$(cat build/output.json)"', "description": "Deploy ${{ github.sha }}"}' \
| jq -r '.cid')
curl -X POST https://api.ipfs.ninja/ipns/publish \
-H "X-Api-Key: ${{ secrets.IPFS_NINJA_API_KEY }}" \
-H "Content-Type: application/json" \
-d '{"ipnsName": "${{ vars.IPNS_NAME }}", "cid": "'"$CID"'"}'Alle API-Beispiele verwenden den X-Api-Key-Header. Holen Sie sich Ihren API-Schlüssel auf der Seite API-Schlüssel.
curl https://api.ipfs.ninja/ipns/keys \
-H "X-Api-Key: bws_your_api_key_here"Antwort:
[
{
"ipnsName": "k51qzi5uqu5dlvj2bv6...",
"keyName": "my-website",
"currentCid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
"lastPublishedAt": 1711123200000,
"publishCountMonth": 12,
"status": "active",
"createdAt": 1711036800000
}
]curl -X POST https://api.ipfs.ninja/ipns/keys \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"name": "my-website"}'Antwort 201:
{
"ipnsName": "k51qzi5uqu5dlvj2bv6...",
"keyName": "my-website",
"createdAt": 1711036800000
}Die Veröffentlichung aktualisiert den IPNS-Namen, um auf einen neuen CID zu verweisen. Dies wird an das IPFS DHT propagiert und kann bis zu 60 Sekunden dauern.
curl -X POST https://api.ipfs.ninja/ipns/publish \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"ipnsName": "k51qzi5uqu5dlvj2bv6...", "cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"}'Antwort:
{
"ipnsName": "k51qzi5uqu5dlvj2bv6...",
"cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
"published": true
}Suchen Sie den aktuellen CID für einen beliebigen IPNS-Namen.
curl https://api.ipfs.ninja/ipns/resolve/k51qzi5uqu5dlvj2bv6... \
-H "X-Api-Key: bws_your_api_key_here"Antwort:
{
"ipnsName": "k51qzi5uqu5dlvj2bv6...",
"cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"
}curl -X DELETE https://api.ipfs.ninja/ipns/keys/k51qzi5uqu5dlvj2bv6... \
-H "X-Api-Key: bws_your_api_key_here"Antwort:
{ "success": true }k51...).| Plan | IPNS-Namen | Veröffentlichungen / Monat |
|---|---|---|
| Dharma (Kostenlos) | Nicht verfügbar | — |
| Bodhi (5 $/Monat) | 3 | 100 |
| Nirvana (29 $/Monat) | 10 | 1.000 |