πŸ“œSoulBound Inscription

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

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.

Last updated