TLAY Product Architecture

10. Conceptual Data Model

The following objects provide a useful conceptual model. Exact schemas may vary by implementation.

10.1 Machine Identity#

{
  "machineId": "did:tlay:machine:example-001",
  "ownerId": "did:tlay:org:operator-01",
  "publicKeys": ["..."],
  "capabilities": ["energy.purchase", "event.sign"],
  "status": "active",
  "policyRef": "policy:buyer-fleet-v3"
}

10.2 Service Offer#

{
  "offerId": "offer:charger-42:2026-08-27T10:00Z",
  "sellerId": "did:tlay:machine:charger-42",
  "serviceType": "energy.delivery",
  "unit": "kWh",
  "unitPrice": {
    "amount": "0.31",
    "currency": "USDC"
  },
  "measurement": "meter:v2",
  "paymentMethods": ["eip3009"],
  "validUntil": "2026-08-27T10:05:00Z",
  "signature": "..."
}

10.3 Economic Policy#

{
  "policyId": "policy:buyer-fleet-v3",
  "maxUnitPrice": "0.35",
  "maxSessionValue": "25.00",
  "dailyLimit": "100.00",
  "allowedServices": ["energy.delivery"],
  "allowedCurrencies": ["USDC"],
  "approvedNetworks": ["eip155:8453"],
  "requireProof": true,
  "humanApprovalAbove": "50.00"
}

10.4 Machine Event#

{
  "eventId": "evt:01J...",
  "sessionId": "session:01J...",
  "machineId": "did:tlay:machine:charger-42",
  "eventType": "delivery.slice",
  "sequence": 17,
  "timestamp": "2026-08-27T10:02:14.428Z",
  "payloadHash": "sha256:...",
  "previousEventHash": "sha256:...",
  "paymentRef": "auth:0x...",
  "signature": "..."
}

10.5 Proof Receipt#

{
  "recordHash": "sha256:...",
  "batchId": "batch:01J...",
  "merkleRoot": "0x...",
  "merkleProof": ["0x...", "0x..."],
  "anchor": {
    "network": "eip155:8453",
    "transactionHash": "0x...",
    "blockNumber": 12345678
  },
  "verificationVersion": "1.0"
}

These objects are linked by identifiers and hashes. The goal is not to impose one universal schema on every industry, but to establish common trust-bearing primitives.