SBIX Node … … … … …

πŸ“š SBIX API β€” Proof of Compliance for MiCA stablecoins

Generate an audit-grade Merkle proof in ≀3s P50 Β· Anchor (Tezos/Aleph) Β· Verify Β· Export (JSON/CSV/XBRL/ZIP).
Base URL: http://demo.sbix.io
Reconcile: https://demo.sbix.io:5151
🩺 Service status
No auth required for health checks
Certify: … Β· P50: …
Verify: … Β· P50: …
Compliance: … Β· P50: …
Reconcile: … Β· P50: …
πŸ” Authentication

Only Certify API requires an API key. Send it via header X-API-Key or query ?api_key=…. Verify, Compliance & Reconcile are open on this node for demo.

cURL
curl -s -H "X-API-Key: <YOUR_KEY>" http://demo.sbix.io/certify/proofs
fetch (JS)
await fetch("http://demo.sbix.io/certify/proofs", {
  headers: { "X-API-Key": "<YOUR_KEY>" }
}).then(r => r.json())
πŸ“˜ Certify API
Generate, list and export Merkle proofs
POST /certify/ β€” Generate a proof auth
curl -s -X POST "http://demo.sbix.io/certify/?api_key=<YOUR_KEY>" \
  -H "Content-Type: application/json" \
  -d '{"leaves":["TX-AAAA1111","TX-BBBB2222","TX-CCCC3333","TX-DDDD4444","TX-EEEE5555"]}'
GET /certify/proofs β€” List proofs auth
curl -s -H "X-API-Key: <YOUR_KEY>" "http://demo.sbix.io/certify/proofs?limit=50"
GET /certify/export/proof/<id>.<fmt> β€” Export (json,csv,xbrl.xml,zip) auth
curl -s -L "http://demo.sbix.io/certify/export/proof/sbix-XXXXXX.zip?api_key=<YOUR_KEY>" -o proof.zip
GET /certify/proof/<id>/path?target=<leaf> β€” Inclusion path auth
curl -s "http://demo.sbix.io/certify/proof/sbix-XXXXXX/path?target=TX-EEEE5555&api_key=<YOUR_KEY>"
GET /certify/export/anchor_log.<fmt> β€” Anchor log (json,jsonl,csv) auth
curl -s "http://demo.sbix.io/certify/export/anchor_log.json?api_key=<YOUR_KEY>"
Health: GET /certify/health (no auth)

πŸ”Ž Verify API
Validate Merkle inclusion proofs
POST /verify/ β€” Wrapped v1 (server builds path)
curl -s -X POST "http://demo.sbix.io/verify/" \
  -H "Content-Type: application/json" \
  -d '{
  "proof": {
    "proof_id": "sbix-XXXXXX",
    "timestamp": "2025-08-10T12:34:56Z",
    "merkle_root": "…",
    "leaves": ["TX-AAAA1111","TX-BBBB2222","TX-CCCC3333","TX-DDDD4444","TX-EEEE5555"]
  },
  "target": "TX-EEEE5555"
}'
await fetch("http://demo.sbix.io/verify/", {
  method:"POST", headers:{ "Content-Type":"application/json" },
  body: JSON.stringify({
    proof:{ proof_id:"sbix-XXXXXX", merkle_root:"...", leaves:["TX-..."] },
    target:"TX-..."
  })
}).then(r => r.json())
POST /verify/ β€” Direct .proof
curl -s -X POST "http://demo.sbix.io/verify/" \
  -H "Content-Type: application/json" \
  -d '{
  "leaf": "TX-EEEE5555",
  "root": "…",
  "proof": [
    {"position":"right","hash":"…"},
    {"position":"left","hash":"…"}
  ]
}'
Health: GET /verify/health

🧠 ComplianceOS API
Ruleset management, single-TX test, batch & alerts
GET /compliance/health
GET/POST /compliance/ruleset β€” YAML validate/save
POST /compliance/test β€” Single TX
POST /compliance/replay β€” ledger.json ➜ alerts.json
GET /compliance/alerts
POST /compliance/batch β€” JSON/JSONL

πŸ”— Reconcile API
Transaction ingestion + schema enforcement
POST https://demo.sbix.io:5151/reconcile β€” JSON payload (see schema)
curl -s -X POST "https://demo.sbix.io:5151/reconcile" \
  -H "Content-Type: application/json" \
  -d '{"tx_id":"TX-DEMO","institution_id":"BANK-AE-01","timestamp":"2025-06-03T12:34:56Z","source_jurisdiction":"FR","destination_jurisdiction":"DE","asset_type":"XRP","amount":"2500.00","sender_id":"u1","receiver_id":"u2","status":"Confirmed","encryption_status":"Plain"}'
Health/hints: GET https://demo.sbix.io:5151/reconcile returns schema hint.