Verified email addresses for the authenticated person identity.emails@1

Generated at from openvibe-contracts v0.419.0 and openvibe-sdk v0.161.0.

Version
1.0.0
Owner
network
Visibility
public
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/identity/emails.v1.json

The verified email addresses the authenticated person has shared. An app with identity.emails.read receives only the single address selected for that app; primary reflects whether it is the account's primary address.

Fields

FieldTypeRequiredDescriptionConstraints
emailshttps://openvibe.network/contracts/identity/emails.v1.json#/$defs/emailyes
  • maxItems 11

Examples

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

Valid: empty-list
{
  "emails": []
}
Valid: primary-and-additional
{
  "emails": [
    {
      "id": "01JAB2C3D4E5F6G7H8J9K0MNPQ",
      "email": "[email protected]",
      "verified": true,
      "primary": true,
      "created_at": "2026-11-08T10:00:00Z",
      "verified_at": "2026-11-08T10:00:00Z"
    },
    {
      "id": "01JAB2C3D4E5F6G7H8J9K0MNPR",
      "email": "[email protected]",
      "verified": false,
      "primary": false,
      "created_at": "2026-11-08T10:05:00Z",
      "verified_at": null
    }
  ]
}
Rejected: missing-primary
{
  "emails": [
    {
      "id": "01JAB2C3D4E5F6G7H9K0MNPQ",
      "email": "[email protected]",
      "verified": true,
      "primary": false,
      "created_at": "2026-11-08T10:00:00Z",
      "verified_at": null
    }
  ]
}

Validate

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