Inscription Schema

The binst metaprotocol defines a formal JSON schema for Ordinals inscriptions.

Envelope Format

Every BINST inscription uses the Ordinals envelope:

  • Content type (tag 1) = application/json
  • Metaprotocol (tag 7) = binst
  • Parent (tag 3) = parent inscription ID (provenance chain)
  • Metadata (tag 5) = optional CBOR-encoded metadata
  • Body = JSON matching the schema below

Entity Types

TypeParent requirementPurpose
institutionNone (root of its tree)Institution identity and metadata
process_templateInstitution inscriptionImmutable process blueprint
process_instanceProcess template inscriptionRunning execution of a template
step_executionProcess instance inscriptionRecord of a step execution (optional)

Provenance Hierarchy

institution (root — no parent required)
 └─ process_template (child of institution)
     └─ process_instance (child of template)
         └─ step_execution (child of instance)

Schema Version

"v": 0 — pilot / testnet4. Breaking changes increment the version.

Example: Institution

{
  "v": 0,
  "type": "institution",
  "name": "Acme Financial",
  "admin_btc_pubkey": "a3f4b2c1d5e6f7890123456789abcdef0123456789abcdef0123456789abcdef",
  "created": "2026-03-15T12:00:00Z"
}

Example: Process Template

{
  "v": 0,
  "type": "process_template",
  "name": "KYC Onboarding",
  "institution_inscription_id": "abc123...i0",
  "steps": [
    { "name": "Submit Documents", "action_type": "upload" },
    { "name": "Review", "action_type": "approval" },
    { "name": "Final Approval", "action_type": "approval" }
  ]
}

Example: Process Instance

{
  "v": 0,
  "type": "process_instance",
  "template_inscription_id": "def456...i0",
  "created_by": "a3f4b2c1...",
  "status": "in_progress"
}

Example: Step Execution

{
  "v": 0,
  "type": "step_execution",
  "instance_inscription_id": "ghi789...i0",
  "step_index": 0,
  "actor": "b5e6c7d8...",
  "status": "completed",
  "timestamp": "2026-03-15T14:30:00Z"
}

Validation

The full JSON Schema (2020-12) is available at binst-metaprotocol.json.

# Validate with ajv-cli
ajv validate -s binst-metaprotocol.json -d examples/institution.json