Provenance

Le propriétaire d’une inscription peut créer des inscriptions enfants, en établissant d’une manière trustless (sans confiance) la provenance de ces enfants sur la blockchain comme ayant été créés par le propriétaire de l’inscription parent. Cela peut être utilisé pour les collections, de façon à ce que les enfants d’une inscription parent soient membres de la même collection.

Les enfants peuvent avoir des enfants, ce qui permet de créer des hiérarchies complexes. Par exemple, un artiste peut créer une inscription le représentant, avec des sous-inscriptions représentant les collections qu’il a créées, les enfants de ces sous-inscriptions étant des éléments de ces collections.

Spécification

Pour créer une inscription enfant C avec une inscription parent P :

  • Créez une transaction d’inscription T comme d’habitude pour C.
  • Dépensez le parent P dans l’une des entrées de T.
  • Incluez l’étiquette 3, c’est-à-dire OP_PUSH 3, dans C, avec la valeur de l’identifiant binaire sérialisé de l’inscription P, sérialisé avec le TXID de 32 octets, suivi de l’INDEX en format petit-boutien de quatre octets, en omettant les zéros de fin.

N.B. Les octets de l’identifiant d’une transaction Bitcoin sont inversés dans leur représentation textuelle, de sorte que l’identifiant de la transaction sérialisée sera dans l’ordre inverse.

Exemple

Exemple d’une inscription enfant de 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1fi0:

OP_FALSE
OP_IF
  OP_PUSH "ord"
  OP_PUSH 1
  OP_PUSH "text/plain;charset=utf-8"
  OP_PUSH 3
  OP_PUSH 0x1f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100
  OP_PUSH 0
  OP_PUSH "Hello, world!"
OP_ENDIF

Notez que la valeur de l’étiquette 3 est binaire, et non hexadécimale, et que pour que l’inscription enfant soit reconnue comme telle, 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1fi0 doit être dépensé comme l’une des entrées de la transaction d’inscription.

Exemple de codage de l’inscription contenant l’ID 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1fi255:

OP_FALSE
OP_IF
  …
  OP_PUSH 3
  OP_PUSH 0x1f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100ff
  …
OP_ENDIF

Et de l’inscription contenant l’ID 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1fi256:

OP_FALSE
OP_IF
  …
  OP_PUSH 3
  OP_PUSH 0x1f1e1d1c1b1a191817161514131211100f0e0d0c0b0a090807060504030201000001
  …
OP_ENDIF

Notes

L’étiquette 3 est utilisée parce que c’est la première étiquette impaire disponible. Les étiquettes impaires inconnues ne dissocient pas les inscriptions, de sorte que les inscriptions enfants seraient reconnues et suivies par les anciennes versions d’ord.

Une collection peut être fermée en brûlant l’inscription parent de la collection, ce qui garantit qu’aucune autre pièce ne peut être émise dans la collection.

See examples for on-chain examples of inscriptions that feature this functionality.