TradeWatchlist trade.watchlist@1

Generated at from openvibe-contracts v0.53.0 and openvibe-sdk v0.11.0.

Version
1.0.0
Owner
trade
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/trade/watchlist.v1.json

trade.watchlist@1: one of a person's watchlists on OpenVibe.Trade (server/domain/watchlists.js dto) with its instruments and notes.

Fields

FieldTypeRequiredDescriptionConstraints
idstringyes
namestringyes
  • maxLength 80
created_atstring | null
  • format date-time
updated_atstring | null
  • format date-time
itemsarray of object
items[].instrumentobjectyes
items[].instrument.idstringyes
items[].instrument.symbolstringyes
items[].instrument.namestring
items[].instrument.kindstring
items[].instrument.exchangestring | null
items[].instrument.statusstring
items[].instrument.urlstring
items[].notestring | null
items[].added_atstring | null
  • format date-time

Examples

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

Valid: semis
{
  "id": "wl_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "name": "Semis",
  "created_at": "2026-09-25T10:00:00.000Z",
  "updated_at": "2026-09-25T10:00:00.000Z",
  "items": [
    {
      "instrument": {
        "id": "ins_01JAB2C3D4E5F6G7H8J9K0MNPQ",
        "symbol": "ACME",
        "name": "Acme Corporation",
        "kind": "equity",
        "exchange": "NASDAQ",
        "status": "active",
        "url": "https://openvibe.trade/i/ACME"
      },
      "note": "earnings in Oct",
      "added_at": "2026-09-25T10:00:00.000Z"
    }
  ]
}
Rejected: no-name
{
  "id": "w"
}

Validate

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