Operations

Submit, retrieve, and verify signed operation records. Operations are the core unit of accountability in Elydora — each one cryptographically captures a single agent action.

Submit Operation

POST
/v1/operations
Submit a signed Elydora Operation Record (EOR).
Auth: integration_engineer

Request Body (EOR)

FieldTypeRequiredDescription
op_versionnumberYesProtocol version (currently 1)
operation_idstringYesClient-generated unique operation ID (UUID v4)
org_idstringYesOrganization identifier
agent_idstringYesSubmitting agent identifier
issued_atstringYesISO 8601 timestamp of operation creation
ttl_msnumberYesTime-to-live in milliseconds (max window for submission)
noncestringYesRandom nonce for replay protection
operation_typestringYesDomain-specific operation type (e.g. loan.approve)
subjectstringYesSubject of the operation
actionstringYesAction performed
payloadobjectYesArbitrary JSON payload
payload_hashstringYesSHA-256 hash of canonicalized payload
prev_chain_hashstringYesPrevious chain hash for this agent (or null for first)
agent_pubkey_kidstringYesKey ID of the agent's signing key
signaturestringYesEd25519 signature over the canonical EOR

Example Request

bash
curl -X POST https://api.elydora.com/v1/operations \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "op_version": 1,
    "operation_id": "550e8400-e29b-41d4-a716-446655440000",
    "org_id": "org_acme",
    "agent_id": "agent_underwriter",
    "issued_at": "2026-02-28T14:00:00Z",
    "ttl_ms": 30000,
    "nonce": "a1b2c3d4e5f6",
    "operation_type": "loan.approve",
    "subject": "LN-2026-001",
    "action": "approve",
    "payload": { "loanId": "LN-2026-001", "amount": 50000 },
    "payload_hash": "sha256:abc123...",
    "prev_chain_hash": "sha256:def456...",
    "agent_pubkey_kid": "kid_abc123",
    "signature": "base64-ed25519-signature..."
  }'

Response

Returns an Elydora Acknowledgement Receipt (EAR) confirming the operation was received and sequenced.

json
{
  "receipt_id": "rcpt_xyz789",
  "operation_id": "550e8400-e29b-41d4-a716-446655440000",
  "seq_no": 42,
  "chain_hash": "sha256:ghi789...",
  "server_received_at": "2026-02-28T14:00:01Z",
  "elydora_signature": "base64-elydora-sig..."
}

Get Operation

GET
/v1/operations/:operation_id
Retrieve a full operation record by ID.
Auth: readonly_investigator

Path Parameters

FieldTypeRequiredDescription
operation_idstringYesUUID of the operation

Response

json
{
  "eor": {
    "op_version": 1,
    "operation_id": "550e8400-e29b-41d4-a716-446655440000",
    "org_id": "org_acme",
    "agent_id": "agent_underwriter",
    "operation_type": "loan.approve",
    "issued_at": "2026-02-28T14:00:00Z",
    "payload": { "loanId": "LN-2026-001", "amount": 50000 },
    "signature": "base64-ed25519-signature..."
  },
  "ear": {
    "receipt_id": "rcpt_xyz789",
    "seq_no": 42,
    "chain_hash": "sha256:ghi789...",
    "elydora_signature": "base64-elydora-sig..."
  }
}

Verify Operation

POST
/v1/operations/:operation_id/verify
Server-side verification of operation signature and chain integrity.
Auth: readonly_investigator

Response

json
{
  "valid": true,
  "checks": {
    "signature_valid": true,
    "chain_hash_valid": true,
    "ttl_valid": true,
    "replay_check": true,
    "agent_status": "active"
  }
}