TipsPublicInteraction tips.public-interaction@1

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

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

tips.public-interaction@1: the public shape of a tip interaction on OpenVibe.Tips (server/domain/privacy.js publicView): what overlay alerts, chat lines, the supporters and goals pages and the public block of API answers show. The supporter's choices apply (an anonymous one reads Anonymous, a hidden amount is null, a private message is null) and the creator's word filter stars blocked words out. A held or hidden interaction (moderation) shows nothing but hidden: true.

Fields

FieldTypeRequiredDescriptionConstraints
interaction_idstringyes
  • pattern ^tint_[0-9A-HJKMNP-TV-Z]{26}$
kindenumyes
  • one of "tip", "paid_message", "tts", "media_request"
amountinteger | nullyesVibes bits; null when hidden.
  • minimum 1
amount_hiddenbooleanyes
currencystringyes
settlementenumyes
  • one of "billing", "external", "simulated", "imported"
testbooleanyes
atstringyesWhen it settled (else when it was created).
supporter_namestring | nullyes
messagestring | nullyes
ttsone ofyes
mediaone ofyes
hiddenbooleanyes

Examples

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

Valid: hidden
{
  "interaction_id": "tint_01JAB2C3D4E5F6G7H8J9K0MNQ5",
  "kind": "paid_message",
  "amount": null,
  "amount_hidden": false,
  "currency": "vibes-bits",
  "settlement": "billing",
  "test": false,
  "at": "2026-09-25T09:12:41.530Z",
  "supporter_name": null,
  "message": null,
  "tts": null,
  "media": null,
  "hidden": true
}
Valid: paid-message
{
  "interaction_id": "tint_01JAB2C3D4E5F6G7H8J9K0MNQ5",
  "kind": "paid_message",
  "amount": 500,
  "amount_hidden": false,
  "currency": "vibes-bits",
  "settlement": "billing",
  "test": false,
  "at": "2026-09-25T09:12:41.530Z",
  "supporter_name": "moosefan",
  "message": "Great stream tonight!",
  "tts": null,
  "media": null,
  "hidden": false
}
Rejected: bad-kind
{
  "interaction_id": "tint_01JAB2C3D4E5F6G7H8J9K0MNQ5",
  "kind": "bits",
  "amount": 500,
  "amount_hidden": false,
  "currency": "vibes-bits",
  "settlement": "billing",
  "test": false,
  "at": "2026-09-25T09:12:41.530Z",
  "supporter_name": "moosefan",
  "message": "Great stream tonight!",
  "tts": null,
  "media": null,
  "hidden": false
}

Validate

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