Provenienza

Il proprietario di un'iscrizione può creare iscrizioni figlie (child), stabilendo in modo affidabile la provenienza di queste ultime on-chain come se fossero state create dal proprietario dell'iscrizione madre (parent). Questo può essere utilizzato per le collezioni, dove i figli di un'iscrizione madre sono membri della stessa collezione.

I figli possono avere a loro volta dei figli, consentendo di creare gerarchie complesse. Ad esempio, un artista potrebbe creare un'iscrizione che rappresenta se stesso, con sotto-iscrizioni che rappresentano le collezioni da lui create, e i figli di queste sotto-iscrizioni sono elementi di tali collezioni.

Specifiche

Per creare un'iscrizione child C con un'iscrizione parent P:

  • Creare una transazione di iscrizione T come di consueto per C.
  • Spendere il genitore P in uno degli ingressi di T.
  • Includere il tag 3, cioè OP_PUSH 3, in C, con il valore dell'ID binario serializzato dell'iscrizione P, serializzato come TXID a 32 byte, seguito dal little-endian INDEX a quattro byte, con gli zeri finali omessi.

NB I byte dell'ID di una transazione bitcoin sono invertiti nella loro rappresentazione testuale, quindi l'ID della transazione serializzato sarà nell'ordine opposto.

Esempio

Un esempio di un iscrizione figlia di 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

Si noti che il valore del tag 3 è binario, non esadecimale, e che affinché l'iscrizione del figlio sia riconosciuta come tale, 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1fi0 deve essere speso come uno degli input della transazione d'iscrizione.

Esempio di codifica dell'ID iscrizione 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1fi255:

OP_FALSE
OP_IF
  …
  OP_PUSH 3
  OP_PUSH 0x1f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100ff
  …
OP_ENDIF

E dell'ID di iscrizione 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1fi256:

OP_FALSE
OP_IF
  …
  OP_PUSH 3
  OP_PUSH 0x1f1e1d1c1b1a191817161514131211100f0e0d0c0b0a090807060504030201000001
  …
OP_ENDIF

Note

L'etichetta 3 viene utilizzata perché è la prima etichetta dispari disponibile. Le etichette dispari non riconosciute non rendono un'iscrizione non vincolata, quindi le iscrizioni figlie verrebbero riconosciute e tracciate dalle vecchie versioni di ord.

Una collezione può essere chiusa bruciando l'iscrizione madre della collezione, il che garantisce che non possano essere emessi altri elementi della collezione.

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