Skip to content

Exemplos de Payload JSON

Esta página detalha as estruturas de dados exatas transmitidas pela rede BSP e armazenadas permanentemente no Arweave. Entender esses payloads é fundamental para depuração e para desenvolvedores que escrevem integrações sem dependência dos SDKs oficiais.

1. O BEO (Objeto de Entidade Biológica)

O estado de um BEO conforme resolvido pelo contrato inteligente BEORegistry.

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. Um BioRecord Padronizado

Como um único resultado médico é estruturado antes de ser criptografado e armazenado.

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. Um BioRecord de Wearable

Como dados contínuos de dispositivo são resumidos (ex. HRV de um 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. O ConsentToken

O objeto de autorização on-chain gerado pelo contrato AccessControl.

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. Requisição de Rede do Protocolo de Troca

O payload JSON HTTP transmitido durante uma chamada SUBMIT_RECORD. Note a dupla autenticação: o consent_token prova que o usuário autorizou, e o ieo_signature prova que o IEO realmente enviou.

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"
    ]
  }
}