{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "cf24b06b",
   "metadata": {},
   "source": [
    "# PARALLAX Exchange Clearinghouse\n",
    "\n",
    "## Computational Notebook for Software Documentation\n",
    "\n",
    "**Title:** PARALLAX Exchange Clearinghouse - AI-First Sovereign Decentralized Exchange  \n",
    "**Version:** 0.1.0  \n",
    "**Authors:** ItsNotAILABS / Alfredo Medina Hernandez  \n",
    "**Repository:** https://github.com/ItsNotAILABS/PARALLAX-Exchange-Clearinghouse  \n",
    "**License:** PARALLAX Sovereign License v1.0  \n",
    "**DOI:** To be assigned upon Zenodo publication\n",
    "\n",
    "This notebook converts the software documentation into a runnable computational artifact. It demonstrates the core numerical and archival ideas: phi-derived constants, the heartbeat formula, the Kuramoto coherence gate, production-engine registry summaries, clearinghouse netting, and hash-based compute receipts.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "018fc52e",
   "metadata": {},
   "source": [
    "## 1. Load the reference module\n",
    "\n",
    "The notebook uses a small reference module, `parallax_core.py`, included in this software package. It is documentation-oriented and does not execute real trades."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "94450120",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-05-25T01:29:56.613907Z",
     "iopub.status.busy": "2026-05-25T01:29:56.612775Z",
     "iopub.status.idle": "2026-05-25T01:29:56.639177Z",
     "shell.execute_reply": "2026-05-25T01:29:56.636391Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "PARALLAX reference module loaded\n",
      "phi = 1.618033988749895\n"
     ]
    }
   ],
   "source": [
    "import sys, json, math, statistics\n",
    "from pathlib import Path\n",
    "sys.path.insert(0, str(Path.cwd().parent / \"src\"))\n",
    "import parallax_core as px\n",
    "print(\"PARALLAX reference module loaded\")\n",
    "print(\"phi =\", px.PHI)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "09c0f05a",
   "metadata": {},
   "source": [
    "## 2. Phi constants and heartbeat\n",
    "\n",
    "The documentation describes a heartbeat derived from the Golden Ratio and Schumann resonance. This cell computes the value directly from the formula."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "cab8f8b0",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-05-25T01:29:56.645179Z",
     "iopub.status.busy": "2026-05-25T01:29:56.644597Z",
     "iopub.status.idle": "2026-05-25T01:29:56.656593Z",
     "shell.execute_reply": "2026-05-25T01:29:56.653816Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'phi': 1.618033988749895,\n",
       " 'phi_inverse': 0.6180339887498949,\n",
       " 'phi_squared': 2.618033988749895,\n",
       " 'phi_inverse_squared': 0.3819660112501052,\n",
       " 'schumann_hz': 7.83,\n",
       " 'heartbeat_ms_formula': 875.3642357917861,\n",
       " 'heartbeat_ms_rounded': 875}"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "heartbeat = px.heartbeat_ms()\n",
    "constants = {\n",
    "    \"phi\": px.PHI,\n",
    "    \"phi_inverse\": px.PHI_INV,\n",
    "    \"phi_squared\": px.PHI_SQ,\n",
    "    \"phi_inverse_squared\": px.PHI_INV_SQ,\n",
    "    \"schumann_hz\": px.SCHUMANN_HZ,\n",
    "    \"heartbeat_ms_formula\": heartbeat,\n",
    "    \"heartbeat_ms_rounded\": round(heartbeat),\n",
    "}\n",
    "constants"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "f4a89ba8",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-05-25T01:29:56.662216Z",
     "iopub.status.busy": "2026-05-25T01:29:56.661775Z",
     "iopub.status.idle": "2026-05-25T01:29:56.669245Z",
     "shell.execute_reply": "2026-05-25T01:29:56.666786Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Heartbeat formula: phi^4 * (1000 / 7.83) = 875.364 ms\n",
      "Notebook note: documentation may round/target this near the 873-875 ms range depending on resonance precision.\n"
     ]
    }
   ],
   "source": [
    "print(f\"Heartbeat formula: phi^4 * (1000 / 7.83) = {heartbeat:.3f} ms\")\n",
    "print(\"Notebook note: documentation may round/target this near the 873-875 ms range depending on resonance precision.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "768f888a",
   "metadata": {},
   "source": [
    "## 3. Fibonacci sequence\n",
    "\n",
    "The system documentation uses Fibonacci/phi constants as a mathematical parameter discipline."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "733ba45f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-05-25T01:29:56.673747Z",
     "iopub.status.busy": "2026-05-25T01:29:56.673237Z",
     "iopub.status.idle": "2026-05-25T01:29:56.681414Z",
     "shell.execute_reply": "2026-05-25T01:29:56.679520Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1,\n",
       " 1,\n",
       " 2,\n",
       " 3,\n",
       " 5,\n",
       " 8,\n",
       " 13,\n",
       " 21,\n",
       " 34,\n",
       " 55,\n",
       " 89,\n",
       " 144,\n",
       " 233,\n",
       " 377,\n",
       " 610,\n",
       " 987,\n",
       " 1597,\n",
       " 2584,\n",
       " 4181,\n",
       " 6765,\n",
       " 10946]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "px.fibonacci(21)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e060eae6",
   "metadata": {},
   "source": [
    "## 4. Production engine registry\n",
    "\n",
    "PARALLAX describes 24 Latin-named production engines. The executable registry below lets the notebook summarize domains and treat the registry as data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "1a132c03",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-05-25T01:29:56.686369Z",
     "iopub.status.busy": "2026-05-25T01:29:56.685953Z",
     "iopub.status.idle": "2026-05-25T01:29:56.719837Z",
     "shell.execute_reply": "2026-05-25T01:29:56.717852Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>latin</th>\n",
       "      <th>domain</th>\n",
       "      <th>math</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>PE-001</td>\n",
       "      <td>Oeconomia.Machina Pretium Dynamica</td>\n",
       "      <td>Pretium</td>\n",
       "      <td>dP = mu*P*dt + sigma*P*dW + phi_inv*J*dN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>PE-002</td>\n",
       "      <td>Oeconomia.Generatio Reditus Perpetua</td>\n",
       "      <td>Reditus</td>\n",
       "      <td>Y(t)=Y0*phi^(t/T)*(1-exp(-lambda*t))</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>PE-003</td>\n",
       "      <td>Oeconomia.Analysis Periculi Profunda</td>\n",
       "      <td>Periculum</td>\n",
       "      <td>VaR_phi = mu - phi*sigma*sqrt(t)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>PE-004</td>\n",
       "      <td>Oeconomia.Provisio Liquiditatis Autonoma</td>\n",
       "      <td>Liquiditas</td>\n",
       "      <td>L(p)=k/(abs(p-p*)+phi_inv)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>PE-005</td>\n",
       "      <td>Oeconomia.Inventio Arbitrii Velocis</td>\n",
       "      <td>Arbitrium</td>\n",
       "      <td>pi=sum(p_buy-p_sell)-epsilon</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>PE-006</td>\n",
       "      <td>Oeconomia.Optimatio Portionis Aurea</td>\n",
       "      <td>Portio</td>\n",
       "      <td>argmax(mu^T w - (phi/2) w^T Sigma w)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>PE-007</td>\n",
       "      <td>Oeconomia.Solutio Instantanea Finalis</td>\n",
       "      <td>Solutio</td>\n",
       "      <td>S(t)=Product Verify(tx_i)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>PE-008</td>\n",
       "      <td>Oeconomia.Creatio Mercatus Perpetua</td>\n",
       "      <td>Pretium</td>\n",
       "      <td>bid=P* - phi_inv*sigma*sqrt(dt)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>PE-009</td>\n",
       "      <td>Oeconomia.Computatio Derivationis Sacra</td>\n",
       "      <td>Derivatio</td>\n",
       "      <td>Black-Scholes with phi-bounds</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>PE-010</td>\n",
       "      <td>Oeconomia.Aestimatio Creditorum Vigilans</td>\n",
       "      <td>Creditum</td>\n",
       "      <td>PD=1/(1+exp(-beta^T x))</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       id  ...                                      math\n",
       "0  PE-001  ...  dP = mu*P*dt + sigma*P*dW + phi_inv*J*dN\n",
       "1  PE-002  ...      Y(t)=Y0*phi^(t/T)*(1-exp(-lambda*t))\n",
       "2  PE-003  ...          VaR_phi = mu - phi*sigma*sqrt(t)\n",
       "3  PE-004  ...                L(p)=k/(abs(p-p*)+phi_inv)\n",
       "4  PE-005  ...              pi=sum(p_buy-p_sell)-epsilon\n",
       "5  PE-006  ...      argmax(mu^T w - (phi/2) w^T Sigma w)\n",
       "6  PE-007  ...                 S(t)=Product Verify(tx_i)\n",
       "7  PE-008  ...           bid=P* - phi_inv*sigma*sqrt(dt)\n",
       "8  PE-009  ...             Black-Scholes with phi-bounds\n",
       "9  PE-010  ...                   PD=1/(1+exp(-beta^T x))\n",
       "\n",
       "[10 rows x 4 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "engine_df = pd.DataFrame(px.ENGINE_REGISTRY)\n",
    "engine_df.head(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "b1076b52",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-05-25T01:29:56.727445Z",
     "iopub.status.busy": "2026-05-25T01:29:56.726914Z",
     "iopub.status.idle": "2026-05-25T01:29:56.740160Z",
     "shell.execute_reply": "2026-05-25T01:29:56.737004Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Arbitrium      1\n",
       "Assecuratio    1\n",
       "Creditum       1\n",
       "Derivatio      2\n",
       "Liquiditas     1\n",
       "Periculum      4\n",
       "Portio         2\n",
       "Praedictio     2\n",
       "Pretium        5\n",
       "Productio      2\n",
       "Reditus        2\n",
       "Solutio        1\n",
       "Name: engine_count, dtype: int64"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "domain_counts = pd.Series(px.domain_counts(), name=\"engine_count\")\n",
    "domain_counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "dacd999b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-05-25T01:29:56.745999Z",
     "iopub.status.busy": "2026-05-25T01:29:56.745339Z",
     "iopub.status.idle": "2026-05-25T01:29:56.754543Z",
     "shell.execute_reply": "2026-05-25T01:29:56.751171Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Registry check passed: 24 engines indexed.\n"
     ]
    }
   ],
   "source": [
    "assert len(engine_df) == 24\n",
    "assert domain_counts.sum() == 24\n",
    "print(\"Registry check passed: 24 engines indexed.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3ddd96da",
   "metadata": {},
   "source": [
    "## 5. Kuramoto coherence gate\n",
    "\n",
    "The notebook simulates a deterministic toy Kuramoto field for 24 production engines and compares the order parameter to the phi-inverse gate."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "7c99d81b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-05-25T01:29:56.760313Z",
     "iopub.status.busy": "2026-05-25T01:29:56.759825Z",
     "iopub.status.idle": "2026-05-25T01:29:56.781559Z",
     "shell.execute_reply": "2026-05-25T01:29:56.778852Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Final Kuramoto order parameter R = 0.8749\n",
      "Gate phi^-1 = 0.6180\n",
      "PASS\n"
     ]
    }
   ],
   "source": [
    "history = px.simulate_kuramoto(n=24, steps=120, coupling=px.PHI)\n",
    "final_R = history[-1]\n",
    "coherence_gate = px.PHI_INV\n",
    "print(f\"Final Kuramoto order parameter R = {final_R:.4f}\")\n",
    "print(f\"Gate phi^-1 = {coherence_gate:.4f}\")\n",
    "print(\"PASS\" if final_R >= coherence_gate else \"FAIL\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "e62b7a2b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-05-25T01:29:56.787974Z",
     "iopub.status.busy": "2026-05-25T01:29:56.787157Z",
     "iopub.status.idle": "2026-05-25T01:30:05.895128Z",
     "shell.execute_reply": "2026-05-25T01:30:05.892666Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Matplotlib is building the font cache; this may take a moment.\n"
     ]
    },
    {
     "data": {
      "image/png": "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8MrbeX7++WcBQD1t5+zZsws9bmhoqHoVWyH+m+6yoIdMJhNC/DfdbGGPEydOCGtra9GmTZsXvi6urq6icePG4tGjR8LExET06NGjwHoPHz4UxsbGwtfX94XHK2jl7YK86LULCQkR/fr1ExYWFsLAwEA0b95c7N27t8CYfH19hZGRkbCxsRGTJk0SBw4cKHDl7aVLl4qqVasKhUIhvL29xcWLF/NNNytE7pSYn376qXB1dRX6+vrCwcFB9OvXT+P34vTp06Jp06ZCLpdrTD37/HSzQgiRnZ0t5s+frz6ek5OTmDlzpsb0qi96PQqKsSAv+l14dv+2bduKevXq5dv/+SljhRDi/v37onv37sLQ0FDY2tqKjz76SGzfvl0AEGfPni1037zpZhcvXlxgnM9P1RsSEiKGDh0qHBwchL6+vqhataro0aNHgatpFyQtLU0sWbJENGvWTJiYmAi5XC48PDzEhAkTNKZmFUKIw4cPC29vb2FoaCjMzMxEz549xa1btzTqFDbdc957yIMHDzTKt2/fLlq3bi2MjY2FsbGxqF27thg3bpy4c+eOuk5hr7sQQmRlZYlFixaJevXqCYVCISwtLUXTpk3F/PnzRWJiosZrV9A01gVNp/zw4UMxdOhQYWtrKxQKhahRo4YYN26cyMzMVNdJTk4WM2fOFO7u7kIulwsbGxvRqlUrsWTJEpGVlVVgrM/buXOn6Natm7C1tRV6enrCwsJCtG7dWixevFgkJCRo1N29e7do2LChMDAwEC4uLmLRokXqKZ6ffU0jIyNF9+7dhampab7f35KImai8kAhRwiPfiIiIypAVK1ZgypQpePz4caGzNRERUfExsSAiogojPT1dYyajjIwMNG7cGEqlEnfv3tVhZEREFR/HWBARUYXRp08fODs7w9PTE4mJidi4cSNu375dKhMNEBGRJiYWRERUYfj4+OCHH37Apk2boFQqUbduXWzZsgUDBgzQdWhERBUeu0IREREREVGxcR0LIiIiIiIqNiYWRERERERUbJVujIVKpcKTJ09gampaYoslERERERFVREIIJCcnw9HRUb3ga2EqXWLx5MmTQlcSJiIiIiKi/B49eoRq1aq9sE6lSyxMTU0B5L44ZmZmOo6GiIiIiKjsSkpKgpOTk/oz9ItUusQir/uTmZkZEwsiIiIioiIoyhACDt4mIiIiIqJi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",
      "text/plain": [
       "<Figure size 800x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.figure(figsize=(8,4))\n",
    "plt.plot(history, label=\"R(t)\")\n",
    "plt.axhline(coherence_gate, linestyle=\"--\", label=\"phi^-1 gate\")\n",
    "plt.title(\"PARALLAX Production Engine Coherence Gate\")\n",
    "plt.xlabel(\"simulation step\")\n",
    "plt.ylabel(\"Kuramoto order parameter R\")\n",
    "plt.legend()\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6a0363fb",
   "metadata": {},
   "source": [
    "## 6. Clearinghouse netting demonstration\n",
    "\n",
    "This is a documentation example for multi-asset netting. A positive position means the participant receives the asset; a negative position means the participant delivers the asset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "3304500e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-05-25T01:30:05.901422Z",
     "iopub.status.busy": "2026-05-25T01:30:05.900308Z",
     "iopub.status.idle": "2026-05-25T01:30:05.925548Z",
     "shell.execute_reply": "2026-05-25T01:30:05.922743Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>participant</th>\n",
       "      <th>asset</th>\n",
       "      <th>net_qty</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Auro</td>\n",
       "      <td>AI_ARTIFACT</td>\n",
       "      <td>2.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Auro</td>\n",
       "      <td>ICP</td>\n",
       "      <td>120.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Auro</td>\n",
       "      <td>ckBTC</td>\n",
       "      <td>-0.75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Basilica</td>\n",
       "      <td>AI_ARTIFACT</td>\n",
       "      <td>1.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Basilica</td>\n",
       "      <td>ICP</td>\n",
       "      <td>-75.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Civitas</td>\n",
       "      <td>AI_ARTIFACT</td>\n",
       "      <td>-3.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Civitas</td>\n",
       "      <td>ICP</td>\n",
       "      <td>-45.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Civitas</td>\n",
       "      <td>ckBTC</td>\n",
       "      <td>0.75</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  participant        asset  net_qty\n",
       "0        Auro  AI_ARTIFACT     2.00\n",
       "1        Auro          ICP   120.00\n",
       "2        Auro        ckBTC    -0.75\n",
       "3    Basilica  AI_ARTIFACT     1.00\n",
       "4    Basilica          ICP   -75.00\n",
       "5     Civitas  AI_ARTIFACT    -3.00\n",
       "6     Civitas          ICP   -45.00\n",
       "7     Civitas        ckBTC     0.75"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trades = [\n",
    "    {\"buyer\":\"Auro\", \"seller\":\"Basilica\", \"asset\":\"ICP\", \"qty\":120},\n",
    "    {\"buyer\":\"Basilica\", \"seller\":\"Civitas\", \"asset\":\"ICP\", \"qty\":45},\n",
    "    {\"buyer\":\"Civitas\", \"seller\":\"Auro\", \"asset\":\"ckBTC\", \"qty\":0.75},\n",
    "    {\"buyer\":\"Auro\", \"seller\":\"Civitas\", \"asset\":\"AI_ARTIFACT\", \"qty\":3},\n",
    "    {\"buyer\":\"Basilica\", \"seller\":\"Auro\", \"asset\":\"AI_ARTIFACT\", \"qty\":1},\n",
    "]\n",
    "positions = px.net_positions(trades)\n",
    "positions_df = pd.DataFrame([{\"participant\":k[0], \"asset\":k[1], \"net_qty\":v} for k,v in positions.items()])\n",
    "positions_df"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d38b0820",
   "metadata": {},
   "source": [
    "## 7. Compute receipt\n",
    "\n",
    "Every computational notebook output can be sealed with a hash receipt. This does not make a financial claim true by itself; it makes the computation record stable, attributable, and reproducible."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "c88f016e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-05-25T01:30:05.930536Z",
     "iopub.status.busy": "2026-05-25T01:30:05.930087Z",
     "iopub.status.idle": "2026-05-25T01:30:05.943987Z",
     "shell.execute_reply": "2026-05-25T01:30:05.937977Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'receipt_type': 'PARALLAX_COMPUTE_RECEIPT',\n",
       " 'software': 'PARALLAX Exchange Clearinghouse',\n",
       " 'version': '0.1.0',\n",
       " 'function': 'PARALLAX.documentation_demo',\n",
       " 'input_hash': '5685a71b853853a9b3ad713782446ff8bff73efc2318733da4ffcc15fa398b7f',\n",
       " 'output_hash': '2f31eb89a9dd920c71121d783e0de61f09c999075bd5de312c40cf36a5129255',\n",
       " 'status': 'computed_documentation_example',\n",
       " 'receipt_hash': '535358c526166466f060fad442e1b45894c40b1ba99734c32109606c9e8b7d17'}"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "outputs = {\n",
    "    \"heartbeat_ms\": heartbeat,\n",
    "    \"domain_counts\": px.domain_counts(),\n",
    "    \"kuramoto_final_R\": final_R,\n",
    "    \"net_positions\": {str(k):v for k,v in positions.items()},\n",
    "}\n",
    "receipt = px.compute_receipt(\"PARALLAX.documentation_demo\", {\"trades\": trades}, outputs)\n",
    "receipt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "00fdb88d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-05-25T01:30:05.950040Z",
     "iopub.status.busy": "2026-05-25T01:30:05.949347Z",
     "iopub.status.idle": "2026-05-25T01:30:05.962481Z",
     "shell.execute_reply": "2026-05-25T01:30:05.959131Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Receipt is deterministic for the same canonical input/output record.\n"
     ]
    }
   ],
   "source": [
    "assert receipt[\"receipt_hash\"] == px.compute_receipt(\"PARALLAX.documentation_demo\", {\"trades\": trades}, outputs)[\"receipt_hash\"]\n",
    "print(\"Receipt is deterministic for the same canonical input/output record.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0fbba72b",
   "metadata": {},
   "source": [
    "## 8. Zenodo metadata preview\n",
    "\n",
    "This cell loads the packaged `.zenodo.json` metadata file."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "71ae7694",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-05-25T01:30:05.967123Z",
     "iopub.status.busy": "2026-05-25T01:30:05.966625Z",
     "iopub.status.idle": "2026-05-25T01:30:05.978565Z",
     "shell.execute_reply": "2026-05-25T01:30:05.975627Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'title': 'PARALLAX Exchange Clearinghouse: AI-First Sovereign Decentralized Exchange',\n",
       " 'upload_type': 'software',\n",
       " 'version': '0.1.0',\n",
       " 'access_right': 'open',\n",
       " 'language': 'eng'}"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "metadata_path = Path.cwd().parent / \".zenodo.json\"\n",
    "zenodo = json.loads(metadata_path.read_text())\n",
    "{key: zenodo[key] for key in [\"title\", \"upload_type\", \"version\", \"access_right\", \"language\"]}"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "00ee5e28",
   "metadata": {},
   "source": [
    "## 9. Citation\n",
    "\n",
    "Use `CITATION.cff` for citation metadata. After Zenodo publication, update the DOI field in the notebook and repository."
   ]
  }
 ],
 "metadata": {
  "authors": [
   {
    "name": "ItsNotAILABS"
   },
   {
    "name": "Alfredo Medina Hernandez"
   }
  ],
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.5"
  },
  "title": "PARALLAX Exchange Clearinghouse - Computational Notebook",
  "zenodo": {
   "upload_type": "software",
   "version": "0.1.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
