TipsInteractionResult tips.interaction-result@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/interaction-result.v1.json
tips.interaction-result@1: one interaction on OpenVibe.Tips (tips.interaction.get, tips.simulation.run). GET /api/v1/interactions/:id → { interaction } in the reader's view (a service, the creator, or the supporter; anyone else 404 tips.interaction_not_found). POST /api/v1/simulate (201) → { interaction }: the simulated interaction (test true, settlement simulated), in the creator's view.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
interaction | tips.interaction | yes |
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: one
{
"interaction": {
"id": "tint_01JAB2C3D4E5F6G7H8J9K0MNQ5",
"creator": {
"type": "user",
"id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ"
},
"supporter": {
"type": "user",
"id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPR"
},
"supporter_name": "moosefan",
"kind": "paid_message",
"amount": 500,
"currency": "vibes-bits",
"message": "Great stream tonight!",
"tts": null,
"media": null,
"goal_id": null,
"funding": "credit",
"settlement": "billing",
"origin": "tips",
"test": false,
"privacy": {
"anonymous": false,
"hide_amount": false,
"private_message": false
},
"public": {
"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
},
"erased_at": null,
"moderation": {
"state": "visible",
"filtered": false,
"at": null
},
"payment": {
"state": "settled",
"billing_txn_id": "txn_01JAB2C3D4E5F6G7H8J9K0MNQ6",
"reversal_txn_ids": [],
"reversed_amount": 0,
"failure": null,
"settled_at": "2026-09-25T09:12:41.530Z",
"reversed_at": null
},
"delivery": {
"state": "delivered",
"delivered_at": "2026-09-25T09:12:43.004Z"
},
"created_at": "2026-09-25T09:12:40.118Z",
"updated_at": "2026-09-25T09:12:43.004Z"
}
}Rejected: list
{
"interaction": [
{
"id": "tint_01JAB2C3D4E5F6G7H8J9K0MNQ5",
"creator": {
"type": "user",
"id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ"
},
"supporter": {
"type": "user",
"id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPR"
},
"supporter_name": "moosefan",
"kind": "paid_message",
"amount": 500,
"currency": "vibes-bits",
"message": "Great stream tonight!",
"tts": null,
"media": null,
"goal_id": null,
"funding": "credit",
"settlement": "billing",
"origin": "tips",
"test": false,
"privacy": {
"anonymous": false,
"hide_amount": false,
"private_message": false
},
"public": {
"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
},
"erased_at": null,
"moderation": {
"state": "visible",
"filtered": false,
"at": null
},
"payment": {
"state": "settled",
"billing_txn_id": "txn_01JAB2C3D4E5F6G7H8J9K0MNQ6",
"reversal_txn_ids": [],
"reversed_amount": 0,
"failure": null,
"settled_at": "2026-09-25T09:12:41.530Z",
"reversed_at": null
},
"delivery": {
"state": "delivered",
"delivered_at": "2026-09-25T09:12:43.004Z"
},
"created_at": "2026-09-25T09:12:40.118Z",
"updated_at": "2026-09-25T09:12:43.004Z"
}
]
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('tips.interaction-result@1', value); // { valid, errors: [{ path, message }] }