Appearance
Points and Vistara Node
What the Vistara Node is
Your Vistara Node is three things on your Mac:
- The local daemon (Relay) that keeps the Workstate for your agents and records their test and build results.
- A device key: a secp256k1 key created on your Mac the first time you activate. It is stored only encrypted by the macOS Keychain, never in plain text, and never shown.
- Signed contribution results: when your agents produce verified work, the node signs a small record of it with the device key and sends it to the points ledger.
The Vistara Node is not mining, staking or validation. It does not run work for anyone else, does not hold funds, and does not secure a network. Running it costs nothing beyond what your agents already use.
Uptime does not earn points
The Points page shows your Vistara Node's uptime and agent work time today so you can see what it is doing, but neither is a reward on its own. Points come only from verified work and active days, under the rules below.
Current rules
| Event | Points | Rule |
|---|---|---|
| Verified completion | +100 | A connected agent (Claude Code, Claude Desktop, Codex, Cursor, Grok) finishes a task: coding, research or writing, seen working for at least 30 seconds and then finished. Work whose tests or build pass also counts. |
| Node online | +5 | Each UTC hour the Vistara app is running and signed in. Counted by the server from the app's check-in. |
| Active day | +20 | Each UTC day on which any agent session on your Mac is active, including Claude Desktop sessions. Once a day. |
| Invite | +250 | Someone you invited turns on their node and finishes their first verified completion. Once per invited person. |
| Welcome | +100 | Your first verified completion, if you joined with an invite code. Once. |
The server decides. Your node reports results; the points ledger decides whether each one counts and how many points it earns, under its current rule version. The Rewards list on the Points page shows each result, its points, and the reason when one was not counted.
Epochs. The ledger groups points into epochs. The Points page shows the current epoch and your verified work in it. The server sets epoch boundaries.
Activation is required. Points start only after you click Activate your node on the Points page. Before that, only the daily anonymous "installed" ping is sent. At activation macOS may ask for your login keychain password; click Always Allow. Vistara uses the Keychain to store the device key encrypted. In builds where the points server is not connected yet, the Points page reads "Node running · points open soon" and your node counts uptime and agent work locally only.
What "verified" means today
Finished tasks. Vistara sees a connected agent's session working, then finishing its turn (not stopping on a permission prompt). That finished turn counts, once, if the agent worked for at least 30 seconds. Research and writing count the same as coding.
Passing checks. A project also counts as a verified completion when its Workstate status is done and its latest tests or build passed. Those results come from the test and build commands your agents ran, read from their hook events, and from Relay's own re-run of the repo's checks when an agent stops. A result goes stale as soon as a file changes after it.
A first step
This is a first step. It does not yet check work against goals you wrote in advance, and it does not include review by an independent model. Those are part of the whitepaper's verification design and are Planned.
What is sent
Before activation the only thing sent is a daily anonymous "installed" ping (a random install id, the app version and whether your node is on; off in ⚙ → Your privacy). After activation, the node sends:
Once, at activation (sign-in):
| Field | Example | Purpose |
|---|---|---|
| Device address | 0x8f2…c41 | The public address of your device key. |
| Signature | 0x… | Proves the device holds the key, over a one-time challenge from the server. |
| Device name | studio-mbp | Your Mac's host name, so you can tell your devices apart. |
| Email (optional) | you@example.com | Only if you type one, so your team knows whose node it is. Stored unverified. |
For each verified completion or active day:
| Field | Example | Notes |
|---|---|---|
id | verified:work_0193…:1727712000000 | Stable, so a result is never sent twice. |
deviceId | (server id) | Assigned by the server at sign-in. |
workstreamId | work_0193… | A random id for the project. It does not contain the folder name. |
type | verified_completion or active_day | |
verification | { "tests": true, "build": false } | Booleans only. Always false, false for an active day. |
occurredAt | 1727712000000 | When the check passed, or when the agent was active. |
proofHash | 0x5e1… | SHA-256 of the local result: workstream id, check results and time (for an active day, the day id and time). The result itself stays on your Mac. |
ruleVersion | v1 | The client's rule version. |
deviceSignature | 0x… | An EIP-191 signature over all of the above, with keys sorted. The ledger rebuilds the same string to verify it. |
No code, prompts, transcripts, file names, folder names, screenshots or browsing are ever sent. Every item sent appears under Rewards on the Points page.
Wallet
Activating gives you a rewards wallet address on Base. It is a counterfactual smart account: its address is known, but the contract is not deployed and holds nothing. Your device key is its owner. There is nothing to set up, fund or sign.
The Points page shows the address. Nothing is deployed or funded today, and no transactions are made.
Node number, Genesis and rank
Node number. Your node gets a public number (for example Node #00042) at its first verified completion. Signing up alone does not assign one.
Genesis. The first 500 nodes to reach a verified completion carry a Genesis badge.
Rank. The Points page shows your rank in the current epoch and the network's totals: nodes, nodes online, verified tasks and points. The server counts them; the leaderboard shows the same numbers publicly. You appear there by node number unless you set a name in Points → Invite and choose to show it.
Invites. While the beta is invite-only, a new node needs an invite code. Each node has 5 invites. Your code and link are under Points → Invite.
Share cards. Share node and Share my day draw an image with your counts (points, rank, agent hours, verified tasks, tokens) and copy it. The image never includes project or repo names, prompts, code, or your wallet.
Anti-gaming
- Caps are applied by the server. A high daily limit on verified completions stops scripted spam (real use doesn't reach it); active days count once a day. The client cannot change this.
- Per workstream, not per agent. A verified completion belongs to a project's workstream. Running more agents or sub-agents on the same project does not multiply the reward; sub-agents roll up into their parent's project.
- Signed by the device. Each result is signed with the device key, and the ledger checks the signature.
- Idempotent. Each result has a stable id. Restarting the app or re-sending does not count it twice.
- Invites count only after real work. The +250 invite reward needs the invited person to finish verified work, not just install.
- Uptime is capped by the clock. Node online earns once per hour, at most 24 a day, however many times the app checks in.
- Tasks need real work. A task counts only after its agent was seen working for 30 seconds, once per finished turn. Sessions and tokens earn nothing by themselves.
Points are not tokens
Points are a record of verified work in the beta. They are not a token, have no cash value, and cannot be transferred.
The whitepaper describes a future token, $VSTR, and a launch distribution "earned by using the product": distributed to users of the public daemon in proportion to verified, accepted goals completed before token generation, under published eligibility rules with per-account caps and Sybil filtering (Section 5.3). Those eligibility rules are not published yet. Nothing in this beta promises that points convert into tokens.
Everything below is Planned and described only in the whitepaper:
- The work market. A node whose own queue is empty may take paid goals from other people. Payment in USDC is held in escrow on Base and released when the goal's acceptance checks pass. The whitepaper targets a testnet in Q2 2027 and mainnet in Q3 2027.
- $VSTR. The whitepaper gives the token two functions only: protocol fees on settled work buy it and burn it, and staked holders govern the parameters that set those fees. It is not needed to use Vistara, and payments are in USDC. The whitepaper targets generation in Q4 2026 with the first contracts, and buybacks once the work escrow opens in 2027. These are targets, not commitments.
See the roadmap for the timeline as the whitepaper states it.