NetworkAccountDeletedPayload network.account.deleted@1

Generated at from openvibe-contracts v0.76.0 and openvibe-sdk v0.20.1.

Version
1.0.0
Owner
network
Visibility
first-party
Status
active
Compatibility
backward
Decision
ADR-033
Schema
https://openvibe.network/contracts/events/payloads/network.account.deleted.v1.json

network.account.deleted v1 (OpenVibe.Network; roadmap WS-B task 7, ADR-033). An account's 30-day grace ended and Network erased what it owns; the subject is a tombstone and is never reused. Each service erases its own rows about the subject once per deletion_id: authored content is removed (an item with other people's replies beneath it stays as an authorless tombstone), likes, votes and reactions go with counts recomputed, money and ledger rows stay pseudonymised, and media under a retention hold stays. It then confirms: POST /internal/account-deletions/{deletion_id}/confirmations (network.account-deletion-confirmation@1, capability network.account.deletion.confirm).

Fields

FieldTypeRequiredDescriptionConstraints
deletion_idstringyesThe deletion; a redelivery carries the same id.
  • pattern ^del_[0-9A-HJKMNP-TV-Z]{26}$
subjectstringyesThe deleted account.
  • pattern ^usr_[0-9A-HJKMNP-TV-Z]{26}$
aliasesarray of stringSubjects merged into this account earlier (ADR-029); a service that still keeps rows under one erases them too.
  • maxItems 50
  • items: pattern ^usr_[0-9A-HJKMNP-TV-Z]{26}$
requested_atstringyesWhen the person scheduled the deletion.
  • format date-time
deleted_atstringyes
  • format date-time

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: deleted
{
  "deletion_id": "del_01JAB2C3D4E5F6G7H8J9K0MNPT",
  "subject": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "requested_at": "2026-08-28T21:00:00.000Z",
  "deleted_at": "2026-09-27T21:00:00.000Z"
}
Valid: with-aliases
{
  "deletion_id": "del_01JAB2C3D4E5F6G7H8J9K0MNPT",
  "subject": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "aliases": [
    "usr_01JAB2C3D4E5F6G7H8J9K0MNPR"
  ],
  "requested_at": "2026-08-28T21:00:00.000Z",
  "deleted_at": "2026-09-27T21:00:00.000Z"
}
Rejected: leaks-username
{
  "deletion_id": "del_01JAB2C3D4E5F6G7H8J9K0MNPT",
  "subject": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "username": "keep",
  "requested_at": "2026-08-28T21:00:00.000Z",
  "deleted_at": "2026-09-27T21:00:00.000Z"
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('network.account.deleted@1', value);   // { valid, errors: [{ path, message }] }