Skip to content

JSON Payload Examples

This page details the exact data structures transmitted across the BSP network and permanently stored on Arweave. Understanding these payloads is critical for debugging and for developers writing zero-dependency integrations without the official SDKs.

1. The BEO (Biological Entity Object)

The state of a BEO as resolved by the BEORegistry smart contract.

json
{
  "beo_id": "bsp:beo:v1:9f8d...",
  "domain": "andre.bsp",
  "public_key": "ed25519_pub_...a1b2",
  "created_at": "2026-01-10T14:32:00Z",
  "record_count": 47,
  "recovery": {
    "status": "ACTIVE",
    "threshold": 2,
    "guardians": [
      "ed25519_pub_...xyz",
      "ed25519_pub_...abc",
      "ed25519_pub_...123"
    ]
  },
  "status": "ACTIVE"
}

2. A Standardized BioRecord

How a single medical result is structured before being encrypted and stored.

json
{
  "record_id": "rec_001_abc123",
  "beo_id": "bsp:beo:v1:9f8d...",
  "biomarker": "BSP-LA-004",
  "value": 4.8,
  "unit": "%",
  "method": "HPLC",
  "collected_at": "2026-02-25T08:15:00Z",
  "source": {
    "ieo_id": "bsp:ieo:fleury:v1:...",
    "domain": "fleury.bsp",
    "signature": "ed25519_sig_...4455"
  },
  "context": {
    "fasting_hours": 12,
    "medication_active": []
  },
  "status": "ACTIVE"
}

3. A Wearable BioRecord

How continuous device data is summarized (e.g., HRV from an Oura Ring).

json
{
  "record_id": "rec_wrb_xyz789",
  "beo_id": "bsp:beo:v1:9f8d...",
  "biomarker": "BSP-DV-002",
  "value": 64.2,
  "unit": "ms",
  "method": "PPG_RMSSD",
  "collected_at": "2026-02-26T00:00:00Z",
  "source": {
    "ieo_id": "bsp:ieo:oura:v1:...",
    "domain": "oura.bsp",
    "signature": "ed25519_sig_...9988"
  },
  "context": {
    "aggregation_type": "DAILY_AVERAGE",
    "device_model": "Oura Gen3"
  },
  "status": "ACTIVE"
}

4. The ConsentToken

The on-chain authorization object generated by the AccessControl contract.

json
{
  "token_id": "tok_556677...",
  "beo_id": "bsp:beo:v1:9f8d...",
  "ieo_id": "bsp:ieo:dr-carlos:v1...",
  "granted_at": "2026-02-26T10:00:00Z",
  "expires_at": "2026-03-28T10:00:00Z",
  "revoked_at": null,
  "scope": {
    "intents": ["READ_RECORDS"],
    "categories": ["BSP-LA", "BSP-CV"],
    "levels": ["CORE", "STANDARD"],
    "period": {
      "from": "2024-01-01T00:00:00Z",
      "to": null
    },
    "max_records": 500
  },
  "revocable": true,
  "owner_signature": "ed25519_sig_...1122",
  "token_hash": "sha256_...aabb"
}

5. Exchange Protocol Network Request

The HTTP JSON payload passed over the wire during a SUBMIT_RECORD call. Notice the double-authentication: the consent_token proves the user allowed it, and the ieo_signature proves the IEO actually sent it.

json
{
  "request_api_version": "0.2",
  "intent": "SUBMIT_RECORD",
  "target_beo": "andre.bsp",
  "auth": {
    "consent_token": "tok_556677...",
    "ieo_domain": "fleury.bsp",
    "ieo_signature": "ed25519_sig_...ddeeff"
  },
  "payload": {
    "encrypted_records": [
      "BASE64_ENCRYPTED_BLOB_1",
      "BASE64_ENCRYPTED_BLOB_2"
    ]
  }
}