> For the complete documentation index, see [llms.txt](https://ordict.gitbook.io/whitepaper/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ordict.gitbook.io/whitepaper/technology/soulbound-inscription.md).

# SoulBound Inscription&#x20;

**Introduction**

The Soulbound Inscription Protocol (SIP) on Ordict employs the Bitcoin blockchain to establish a robust system of inscriptions. These inscriptions are immutable, non-transferable, and verifiably linked to a parent inscription, encompassing specific user metadata including wallet addresses to secure a record of user activities and achievements within the Ordict ecosystem.

**Provenance and Hierarchical Structure**

**Parent Inscription:**

* Acts as the main entity or organization that issues child inscriptions.
* Serves as the root for verification and issuance of new child inscriptions, ensuring all are part of a controlled and verified collection.

**Child Inscription:**

* Represents an individual record tied to a specific user's wallet address.
* Stores metadata specific to user achievements or event participation.
* Inherits security and verifiability from the parent inscription.

**Technical Specification**

**Creating a Child Inscription**

* **Inscribe Transaction (T):** Initiate with a standard Bitcoin transaction that includes the inscription data.
* **Parent Spending:** The transaction must spend at least one output from the parent inscription to establish a link between the child and its parent.
* **Inclusion of Wallet Address:** Embed the user's public key in the child inscription’s data structure using a predefined tag (e.g., OP\_PUSH).
* **Tag 3 Usage:** Utilize tag 3 (OP\_PUSH 3) to encode the serialized binary inscription ID of the parent, comprising the transaction ID (TXID) reversed, followed by the index, minimizing trailing zeros.

**Example Inscription for a Child with User Public Key**

```plaintext
OP_FALSE
OP_IF
  OP_PUSH "ord"
  OP_PUSH 1
  OP_PUSH "application/json"
  OP_PUSH 3
  OP_PUSH 0x1f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100
  OP_PUSH 0
  OP_PUSH {"wallet": "bc1p...userpublickey", "type": "sports"}
OP_ENDIF
```

This script integrates the user's wallet address and the type of achievement directly onto the Bitcoin blockchain as part of the child inscription, establishing a connection to the parent through transaction inputs and the OP\_PUSH 3 tag.
