Français
Français
Appearance
Français
Français
Appearance
IPNS (InterPlanetary Name System) vous offre des adresses stables et partageables qui peuvent etre mises à jour pour pointer vers du contenu different au fil du temps. Alors que les CIDs IPFS changent à chaque modification du contenu, un nom IPNS reste le même — vous mettez simplement à jour vers ou il pointe.
Disponible sur les plans Bodhi (3 noms, 100 publications/mois) et Nirvana (10 noms, 1 000 publications/mois).
En savoir plus sûr IPNS
Pour une plongee approfondie dans le fonctionnement d'IPNS au niveau du protocole, consultez la documentation officielle IPFS sûr IPNS.

Le problème : Chaque fois que vous téléchargez une nouvelle version d'un fichier sur IPFS, vous obtenez un CID different. Si vous avez partage l'ancien CID avec des utilisateurs, ils voient toujours l'ancien contenu. Vous devriez partager un nouveau lien à chaque fois.
La solution : Créez un nom IPNS une fois, partagez-le et mettez à jour vers ou il pointe lorsque votre contenu change. Toute personne ayant l'adresse IPNS obtient toujours la dernière version.
tokenURI de votre NFT vers une adresse IPNS. Mettez à jour les métadonnées (ex. un objet de jeu monte de niveau) sans changer le contrat intelligent.https://votredomaine.com serve toujours le dernier contenu IPFS.k51...) — c'est votre adresse permanente et partageable.
QmXk7VRz... ou bafybei...).https://ipfs.ninja/ipns/{votre-nom-ipns}https://dweb.link/ipns/{votre-nom-ipns}ipns://{votre-nom-ipns}
Lorsque votre contenu change :
Utilisez la section Résoudre en bas de la page pour rechercher le CID actuel de n'importe quel nom IPNS — le votre ou celui de quelqu'un d'autre.
Cliquez sur le bouton supprimer a côté de n'importe quel nom. L'enregistrement IPNS expirera du réseau dans les 48 heures.
Vous pouvez pointer votre propre nom de domaine vers une adresse IPNS en utilisant DNSLink. Cela permet aux utilisateurs d'accéder à votre contenu IPFS via une URL régulière comme https://votredomaine.com.
Créez un nom IPNS et publiez le CID de votre contenu dessus (étapes ci-dessus).
Ajoutez un enregistrement DNS TXT chez votre fournisseur DNS de domaine :
_dnslink.yourdomain.com TXT "dnslink=/ipns/{your-ipns-name}"Exemple : Si votre nom IPNS est k51qzi5uqu5djcpbukxs... :
_dnslink.myapp.com TXT "dnslink=/ipns/k51qzi5uqu5djcpbukxs..."Vérifiez l'enregistrement avec dig ou nslookup :
dig +short TXT _dnslink.myapp.com
# Devrait retourner : "dnslink=/ipns/k51qzi5uqu5djcpbukxs..."Accédez via n'importe quel gateway IPFS supportant DNSLink :
https://ipfs.ninja/ipns/myapp.comOu via un navigateur avec support IPFS (comme Brave) :
ipns://myapp.comPropagation DNS
Les modifications DNS peuvent prendre jusqu'à 24 heures pour se propager globalement. Apres avoir ajoute l'enregistrement TXT, attendez quelques heures avant de tester.
TIP
Vous n'avez besoin de configurer DNSLink qu'une seule fois. Lorsque vous publiez un nouveau CID sur votre nom IPNS, le domaine résout automatiquement vers le nouveau contenu — aucun changement DNS nécessaire.
Si vous utilisez Cloudflare :
_dnslink, Contenu : dnslink=/ipns/k51..._dnslink.yourdomain.com, Type : TXT, Valeur : "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"'"}'Tous les exemples de l'API utilisent l'en-tête X-Api-Key. Obtenez votre clé API depuis la page Clés API.
curl https://api.ipfs.ninja/ipns/keys \
-H "X-Api-Key: bws_your_api_key_here"Réponse :
[
{
"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"}'Réponse 201 :
{
"ipnsName": "k51qzi5uqu5dlvj2bv6...",
"keyName": "my-website",
"createdAt": 1711036800000
}Publier met à jour le nom IPNS pour pointer vers un nouveau CID. Cela se propage dans le DHT d'IPFS et peut prendre jusqu'à 60 secondes.
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"}'Réponse :
{
"ipnsName": "k51qzi5uqu5dlvj2bv6...",
"cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",
"published": true
}Recherchez le CID actuel de n'importe quel nom IPNS.
curl https://api.ipfs.ninja/ipns/resolve/k51qzi5uqu5dlvj2bv6... \
-H "X-Api-Key: bws_your_api_key_here"Réponse :
{
"ipnsName": "k51qzi5uqu5dlvj2bv6...",
"cid": "bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi"
}curl -X DELETE https://api.ipfs.ninja/ipns/keys/k51qzi5uqu5dlvj2bv6... \
-H "X-Api-Key: bws_your_api_key_here"Réponse :
{ "success": true }k51...).| Plan | Noms IPNS | Publications / Mois |
|---|---|---|
| Dharma (Gratuit) | Non disponible | — |
| Bodhi (5 $/mois) | 3 | 100 |
| Nirvana (29 $/mois) | 10 | 1 000 |