Core Primitives

Transitions

A verified state change within an operation. Transitions require proof — evidence, attestation, or authority — and are permanently recorded.

The Transition object

Transition
{
  "id": "tr_ghi789",
  "operation_id": "op_abc123",
  "from": "triaged",
  "to": "verified",
  "reason": "Evidence reviewed and confirmed by lead investigator",
  "proof": ["att_456", "ev_xyz789"],
  "initiated_by": "part_def456",
  "created_at": "2025-01-16T11:00:00Z"
}
ParameterTypeDescription
idstringUnique identifier. Prefixed with tr_
operation_idstringThe operation this transition belongs to
fromstringPrevious state
torequiredstringTarget state
reasonrequiredstringWhy this transition is happening
proofstring[]IDs of attestations or evidence supporting the transition
initiated_bystringParticipant who initiated the transition
created_atdatetimeISO 8601 timestamp

Valid transitions

Not all state changes are valid. The API enforces a transition graph based on the operation type. Attempting an invalid transition returns a 409 Conflict.

409 Conflict
{
  "error": {
    "code": "invalid_transition",
    "message": "Cannot transition from 'created' to 'resolved'",
    "status": 409
  }
}

Endpoints

Create a transition

POST
/v1/operations/:id/transitions
curl -X POST https://api.microndelta.com/v1/operations/op_abc123/transitions \
  -H "Authorization: Bearer md_live_xxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "verified",
    "reason": "Evidence reviewed and confirmed",
    "proof": ["att_456"]
  }'

List transitions

GET
/v1/operations/:id/transitions

Returns the full transition history