Wallet

Chaque sat peut être inscrit avec un contenu arbitraire, créant ainsi des artefacts numériques natifs de Bitcoin qui peuvent être stockés dans un portefeuille Bitcoin et transférés à l’aide de transactions Bitcoin. Les inscriptions sont aussi durables, immuables, sûres et décentralisées que Bitcoin lui-même.

Travailler avec des inscriptions nécessite un nœud complet Bitcoin, pour vous donner une vue d’ensemble de l’état actuel de la blockchain Bitcoin, et un portefeuille qui peut créer des inscriptions et effectuer un contrôle de sats lors de la préparation de transactions visant à envoyer des inscriptions à un autre portefeuille.

Bitcoin Core fournit à la fois un nœud complet et un portefeuille Bitcoin. Le portefeuille Bitcoin Core ne peut cependant pas créer d’inscriptions et n’effectue pas de contrôle de sats.

Pour cela, il faut recourir à ord, l’utilitaire ordinal. ord n’implémente pas son propre portefeuille, donc les sous-commandes du portefeuille ord wallet interagissent avec les portefeuilles Bitcoin Core.

Ce guide couvre :

  1. L’installation de Bitcoin Core
  2. La synchronisation de la blockchain Bitcoin
  3. La création d’un portefeuille Bitcoin Core
  4. L’utilisation de ord wallet receive pour recevoir des sats
  5. La création d’inscriptions à l’aide de ord wallet inscribe
  6. L’envoi d’inscriptions à l’aide de ord wallet send
  7. La réception d’inscriptions avec ord wallet receive
  8. Batch inscribing with ord wallet inscribe --batch

Obtenir de l’aide

Si vous êtes coincé, essayez de demander de l’aide sur le Serveur Discord d’Ordinals, ou consultez GitHub pour des discussions et des problèmes pertinents.

L’installation de Bitcoin Core

Bitcoin Core est disponible sur la page de téléchargement de bitcoincore.org.

Making inscriptions requires Bitcoin Core 28 or newer.

Ce guide ne couvre pas l’installation de Bitcoin Core en détail. Une fois Bitcoin Core installé, vous devriez être en mesure d’exécuter bitcoind -version avec succès depuis la ligne de commande. N’utilisez PAS bitcoin-qt.

Configurer Bitcoin Core

ord nécessite l’index de transactions et l’interface rest de Bitcoin Core.

Pour configurer votre nœud Bitcoin Core afin qu’il maintienne un index des transactions, ajoutez ce qui suit à votre bitcoin.conf:

txindex=1

Ou bien, exécutez bitcoind avec -txindex:

bitcoind -txindex

Vous pouvez trouver des détails sur la création ou la modification de votre fichier bitcoin.conf ici.

La synchronisation de la blockchain Bitcoin

Pour synchroniser la blockchain, exécutez :

bitcoind -txindex

...et laissez-la s’exécuter jusqu’à ce que getblockcount:

bitcoin-cli getblockcount

corresponde au nombre de blocs sur un explorateur de blocs tel que mempool.space. ord interagit avec bitcoind, il faut donc laisser bitcoind s’exécuter en arrière-plan lorsque vous utilisez ord.

La blockchain occupe environ 600 Go d’espace disque. Si vous avez un disque externe sur lequel vous souhaitez stocker des blocs, utilisez l’option de configuration blocksdir=<external_drive_path>. C’est beaucoup plus simple que d’utiliser l’option datadir car le fichier cookie sera toujours dans l’emplacement par défaut afin que bitcoin-cli et ord puissent le trouver.

Résolution des problèmes

Assurez-vous de pouvoir accéder à bitcoind avec bitcoin-cli -getinfo et qu’il est entièrement synchronisé.

Si bitcoin-cli -getinfo renvoie Could not connect to the server (n’a pas pu se connecter au serveur), bitcoind ne s’exécute pas.

Assurez-vous que rpcuser, rpcpassword ou rpcauth ne sont PAS configurés dans votre fichier bitcoin.conf. ord nécessite l’utilisation de l’authentification à l’aide de cookies. Assurez-vous qu’il y a un fichier .cookie dans votre répertoire de données Bitcoin.

Si bitcoin-cli -getinfo renvoie Could not locate RPC credentials (n’a pas pu localiser les informations d’authentification RPC), vous devez spécifier l’emplacement du fichier cookie. Si vous utilisez un répertoire de données personnalisé (en spécifiant l’option datadir), vous devez spécifier l’emplacement du cookie comme suit : bitcoin-cli -rpccookiefile=<your_bitcoin_datadir>/.cookie -getinfo. Lorsque vous exécutez ord, vous devez spécifier l’emplacement du fichier cookie à l’aide de --cookie-file=<your_bitcoin_datadir>/.cookie.

Assurez-vous de ne PAS avoir disablewallet=1 dans votre fichier bitcoin.conf. Si bitcoin-cli listwallets renvoie Method not found (méthode non trouvée), le portefeuille est désactivé et vous ne pourrez pas utiliser ord.

Assurez-vous que txindex=1 est configuré. Lancez bitcoin-cli getindexinfo et cela devrait retourner quelque chose de ce genre

{
  "txindex": {
    "synced": true,
    "best_block_height": 776546
  }
}

Si cela renvoie uniquement {}, txindex n’est pas défini. Si cela renvoie "synced": false, bitcoind est encore en train de créer le txindex. Attendez que "synced": true s’affiche avant d’utiliser ord.

Si vous avez configuré maxuploadtarget, cela peut interférer avec le fetch de blocs pour l’index ord. Il faut soit le supprimer ou définir whitebind=127.0.0.1:8333.

L’installation de ord

L’utilitaire ord est écrit en Rust et peut être compilé à partir des sources. Des binaires préconstruits sont disponibles sur la page des versions.

Vous pouvez installer le dernier binaire préconstruit à partir de la ligne de commande suivante :

curl --proto '=https' --tlsv1.2 -fsLS https://ordinals.com/install.sh | bash -s

Une fois ord installé, vous devriez être en mesure d’exécuter :

ord --version

Ce qui indiquera le numéro de version de ord.

Creating a Wallet

ord uses bitcoind to manage private keys, sign transactions, and broadcast transactions to the Bitcoin network. Additionally the ord wallet requires ord server running in the background. Make sure these programs are running:

bitcoind -txindex
ord server

To create a wallet named ord, the default, for use with ord wallet, run:

ord wallet create

This will print out your seed phrase mnemonic, store it somewhere safe.

{
  "mnemonic": "dignity buddy actor toast talk crisp city annual tourist orient similar federal",
  "passphrase": ""
}

If you want to specify a different name or use an ord server running on a non-default URL you can set these options:

ord wallet --name foo --server-url http://127.0.0.1:8080 create

To see all available wallet options you can run:

ord wallet help

Restoring and Dumping Wallet

The ord wallet uses descriptors, so you can export the output descriptors and import them into another descriptor-based wallet. To export the wallet descriptors, which include your private keys:

$ ord wallet dump
==========================================
= THIS STRING CONTAINS YOUR PRIVATE KEYS =
=        DO NOT SHARE WITH ANYONE        =
==========================================
{
  "wallet_name": "ord",
  "descriptors": [
    {
      "desc": "tr([551ac972/86'/1'/0']tprv8h4xBhrfZwX9o1XtUMmz92yNiGRYjF9B1vkvQ858aN1UQcACZNqN9nFzj3vrYPa4jdPMfw4ooMuNBfR4gcYm7LmhKZNTaF4etbN29Tj7UcH/0/*)#uxn94yt5",
      "timestamp": 1296688602,
      "active": true,
      "internal": false,
      "range": [
        0,
        999
      ],
      "next": 0
    },
    {
      "desc": "tr([551ac972/86'/1'/0']tprv8h4xBhrfZwX9o1XtUMmz92yNiGRYjF9B1vkvQ858aN1UQcACZNqN9nFzj3vrYPa4jdPMfw4ooMuNBfR4gcYm7LmhKZNTaF4etbN29Tj7UcH/1/*)#djkyg3mv",
      "timestamp": 1296688602,
      "active": true,
      "internal": true,
      "range": [
        0,
        999
      ],
      "next": 0
    }
  ]
}

An ord wallet can be restored from a mnemonic:

ord wallet restore --from mnemonic

Type your mnemonic and press return.

To restore from a descriptor in descriptor.json:

cat descriptor.json | ord wallet restore --from descriptor

To restore from a descriptor in the clipboard:

ord wallet restore --from descriptor

Paste the descriptor into the terminal and press CTRL-D on unix and CTRL-Z on Windows.

Recevoir des sats

Les inscriptions sont créées sur des sats individuels, en utilisant des transactions Bitcoin standard qui paient des frais en sats. Votre portefeuille doit donc contenir quelques sats.

Obtenez une nouvelle adresse à partir de votre portefeuille ord en exécutant :

ord wallet receive

Et envoyez-y des fonds.

Vous pouvez voir les transactions en attente en exécutant :

ord wallet transactions

Une fois la transaction confirmée, vous devriez être en mesure de voir les sorties de transactions avec ord wallet outputs.

Créer du contenu pour les inscriptions

Les sats peuvent être inscrits avec n’importe quel type de contenu, mais le portefeuille ord ne prend en charge que les types de contenu qui peuvent être affichés par l’explorateur de blocs ord.

En outre, les inscriptions sont incluses dans les transactions, donc plus le contenu est volumineux, plus les frais à payer pour la transaction de l’inscription sont élevés.

Le contenu des inscriptions est inclus dans les témoins de transaction, qui bénéficient de la réduction pour témoins. Afin de calculer le montant approximatif des frais de transaction d’une inscription, divisez la taille du contenu par quatre et multipliez par le taux de frais.

Les transactions d’inscription doivent être inférieures à 400 000 unités de poids, sinon elles ne seront pas relayées par Bitcoin Core. Un octet de contenu d’inscription coûte une unité de poids. Étant donné qu’une transaction d’inscription ne contient pas seulement le contenu de l’inscription, il faut limiter le contenu de l’inscription à moins de 400 000 unités de poids. Il est donc recommandé de ne pas dépasser 390 000 unités de poids, afin de maintenir une marge de sécurité.

La création d’inscriptions

Pour créer une inscription avec le contenu de FILE, exécutez :

ord wallet inscribe --fee-rate FEE_RATE --file FILE

Ord affichera deux identifiants de transaction, l’un pour la transaction d’engagement et l’autre pour la transaction de révélation, ainsi que l’identifiant de l’inscription. Les identifiants d’inscription ont le format TXIDiN, TXID étant l’identifiant de la transaction de révélation et N l’index de l’inscription dans la transaction de révélation.

La transaction d’engagement s’engage à utiliser un tapscript qui héberge le contenu de l’inscription, tandis que la transaction de révélation dépense ce tapscript, révélant ainsi le contenu sur la chaîne et l’inscrivant sur le premier sat d’entrée contenant le tapscript correspondant.

Attendez que la transaction de révélation soit minée. Vous pouvez vérifier le statut des transactions d’engagement et de révélation en utilisant l’explorateur de blocs mempool.space.

Une fois que la transaction de révélation a été minée, l’identifiant d’inscription devrait apparaître lorsque vous exécutez :

ord wallet inscriptions

Inscriptions parent-enfant

Les inscriptions parent-enfant permettent ce que l’on appelle des collections en langage courant (voir provenance pour plus d’informations).

Pour faire d’une inscription l’enfant d’une autre, l’inscription parent doit être inscrite et présente dans le portefeuille. Pour choisir un parent, lancez ord wallet inscriptions et copiez l’identifiant de l’inscription (<PARENT_INSCRIPTION_ID>).

Inscrivez maintenant l’inscription enfant et spécifiez le parent comme suit :

ord wallet inscribe --fee-rate FEE_RATE --parent <PARENT_INSCRIPTION_ID> --file CHILD_FILE

Cette relation ne peut pas être ajoutée rétroactivement, le parent doit être présent lors de la création de l’enfant.

L’envoi d’inscriptions

Demandez au destinataire de générer une nouvelle adresse en exécutant :

ord wallet receive

Envoyez l’inscription en exécutant :

ord wallet send --fee-rate <FEE_RATE> <ADDRESS> <INSCRIPTION_ID>

Voyez la transaction en attente avec la commande :

ord wallet transactions

Une fois que la transaction d’envoi est confirmée, le destinataire peut confirmer la réception en exécutant :

ord wallet inscriptions

Sending Runes

Demandez au destinataire de générer une nouvelle adresse en exécutant :

ord wallet receive

Send the runes by running:

ord wallet send --fee-rate <FEE_RATE> <ADDRESS> <RUNES_AMOUNT>

Where RUNES_AMOUNT is the number of runes to send, a : character, and the name of the rune. For example if you want to send 1000 of the EXAMPLE rune, you would use 1000:EXAMPLE.

ord wallet send --fee-rate 1 SOME_ADDRESS 1000:EXAMPLE

Voyez la transaction en attente avec la commande :

ord wallet transactions

Once the send transaction confirms, the recipient can confirm receipt with:

ord wallet balance

La réception d’inscriptions

Générez une nouvelle adresse de réception en utilisant :

ord wallet receive

L’expéditeur peut transférer l’inscription à votre adresse en utilisant :

ord wallet send --fee-rate <FEE_RATE> ADDRESS INSCRIPTION_ID

Voyez la transaction en attente avec la commande :

ord wallet transactions

Once the send transaction confirms, you can confirm receipt by running:

ord wallet inscriptions