How quests work
Everything on this page is the whole truth about what Quest does with your activity. If it is not here, Quest does not do it.
What moves a quest
OpenVibe.Events delivers the domain events that OpenVibe sites already emit when something really happens. Quest counts the ones below, and takes the person from the field the event's own schema defines — never from a name, never by guessing. An event whose person field is missing, or names a guest or a service instead of a person, is ignored and nothing is stored.
| Event | From | What it means |
|---|---|---|
live.stream.started | OpenVibe.Live | A stream went live. The streamer is the channel's user subject. |
live.stream.ended | OpenVibe.Live | A stream ended. Quest does not subscribe to this one. Nothing is stored for it. |
network.follow.created | OpenVibe.Network | Somebody followed a channel or a person; the payload names the follower. |
community.thread.created | OpenVibe.Community | A forum thread was started; the payload names its author. |
community.post.created | OpenVibe.Community | A reply was posted in a thread; the payload names its author. |
community.comment.created | OpenVibe.Community | A comment was left on a post or a paste; the payload names its author. |
space.thread.created | OpenVibe.Space | A thread was started in a Space; the payload names its author. |
chat.room.message.created | OpenVibe.Chat | A message was posted in a PUBLIC chat room; the payload names its author. Private rooms and DMs never emit it. |
wiki.revision.created | OpenVibe.Wiki | A wiki page got a new immutable revision; the payload names its author (a service edit is ignored). |
games.player.joined | OpenVibe.Games | A character entered a world; the payload names its account's user subject (a guest is ignored). |
tools.job.created | OpenVibe.Tools | A tool job was accepted and queued; the payload names its owner (an anonymous session is ignored). |
live.setup.task_completed | OpenVibe.Live | A streamer finished a task on Live's go-live setup list for the first time; the payload names the streamer and the task, never what they made. |
blog.post.published | OpenVibe.Blog | A post was published; the envelope actor is the person who published it (a scheduled or service publish is ignored). |
deals.offer.created | OpenVibe.Deals | A deal was submitted; the envelope actor is the person who posted it (deals imported from a source are ignored). |
deals.vote.changed | OpenVibe.Deals | A vote on a deal was cast or changed; the envelope actor is the voter. |
run.job.succeeded | OpenVibe.Run | A job finished on a node; the payload names its requester (a service or app requester is ignored). |
inventory.item.equipped | OpenVibe.Inventory | An item was equipped; the payload names its owner, never what else they own. |
bot.robot.online | OpenVibe.Bot | A device connected and serves a robot; the payload names the robot's owner (events from before Bot named it are ignored). |
games.world.published | OpenVibe.Games | A player published one of their creator worlds for the first time; the payload names the owner. |
mediahub.video.published | OpenVibe.Video | A video a person uploaded or recorded is public and ready for the first time; the payload names the owner. |
mediahub.picture.uploaded | OpenVibe.Pics | A signed-in person uploaded a picture; the payload names the owner (and carries no link). |
Nothing else is tracked. Quest stores no page views, no clicks, no watch time, and no content you wrote — not a
message's text, not a thread's title, not a wiki revision's text. A message in a private chat room or a direct
message never reaches Quest at all: OpenVibe.Chat only emits chat.room.message.created for public
rooms.
What is stored
Three things, all keyed by your canonical subject (usr_…):
- a count per quest step — for example "2 of 3 streams";
- one row per quest you completed, with when, and what happened to its OpenCoins;
- one row per badge you were awarded, with the date.
The only thing anyone else can read about you is that badge list: GET /api/v1/profiles/<subject>/badges answers the badge's id, its name and the date, and nothing else — no counts, no progress, no completions, no person.
Rewards
A quest pays a badge — a text label on your profile, awarded once — and, when OpenCoins are on, OpenCoins. OpenCoins are loyalty points credited through OpenVibe.Network's wallet. They are never money, they are not Vibes, and Quest neither reads nor moves money anywhere. Vibes are real money and belong to the sites that pay them out; nothing on this service touches them.
Completing a quest credits OpenCoins through OpenVibe.Network's wallet, within 50 OpenCoins per person per day and 5000 for everyone together. OpenCoins are loyalty points, never money — and never Vibes.
When a completion earns OpenCoins, Quest asks OpenVibe.Network to credit them with an idempotency key — so a retry of a credit that did land can never pay twice. If the wallet refuses or is unreachable, the failure is recorded with its reason and retried; nothing is silently dropped. A completion over a daily cap is marked skipped with the reason, and the quest itself is still completed and still pays its badge.
Your account and your quests
- Every quest completes once per person.
- Quests come from OpenVibe and from developers' apps (on their own app's events, badges only). Communities and streamers do not write quests: a quest sends people to do something.
- Deleting your OpenVibe account deletes your progress, completions and badges here, and an account export includes them (ADR-033).
- When two of your OpenVibe accounts are merged, everything here moves to the account you keep: each step keeps the higher count, a quest both finished counts once, and each badge keeps its first award (ADR-029).