WW VIBEBack to W VIBE
COMMITTED PROJECT NOTESDownload Markdown

W VIBE — current homepage and data contract

Updated: 2026-09-06. The current test uses program version 0.3.0 and 100 new Devnet records. Final assets and discovery mechanics remain open.

Issuance is the source of the rules

Each new record fixes its asset type, origin core, starting phase, evolution cadence, decoder/render versions and price-rule profile when it is issued. The Solana program assigns birth rarity and the initial issue price from those traits and records issuance time from its Clock sysvar. These fields have no mutation instruction. The encrypted seed is authenticated with the canonical issuance recipe as associated data; the record also contains its digest. Changing that recipe makes decoding fail.

The V3 rarity score is evolution points [90,68,45,23,0] plus behavior index × 3. Thus frequency dominates and traits provide a smaller refinement. Rank thresholds are 80/60/40. Initial test price uses the tier basis times (100 + behavior index × 5)/100. Details show the score breakdown. See Minting. Displayed counts describe the active test batch, not global supply guarantees.

The type-specific decoder/renderer supports temporary Artifact, Entity and Scene image recipes. Each type has its own four named phases, hue, rotation and scale pattern, with seed-derived identity variation. No video or 3D renderer is implemented; unknown types and versions fail closed. The actual asset medium remains a creative decision.

Evolution and price calculation in the program

Schedules are every minute, hour, day, calendar month or calendar year, anchored to the record's original issuance time. Calendar schedules use UTC and preserve the original month-end/day anchor, including leap years. Ownership and claims do not restart the clock. Unclaimed and concealed records follow their schedules too.

The program's read-only quote instruction calculates the state index, phase, current platform test price and previous platform test price from its Clock and immutable origin fields. It refuses future or excessively old requested read times. No owner can skip stages with the old increment instruction on these records. That instruction remains available only for legacy playground records.

The site invokes the quote through simulateTransaction without broadcasting or signing. This executes the deployed program against confirmed chain state and returns account data from the same simulation. It does not persist a transaction or charge a fee per Shift. Schedules progress mathematically while nobody is viewing; the next read computes the current state directly.

The test price profile can rise, fall or stay flat through a four-phase cycle. It starts at the initial issue price; Common/free records remain free. This platform price is an issuance basis for an unclaimed record and a reference for an owned record. It is not a market valuation, floor, seller ask, guaranteed appreciation or executable purchase offer. Seller listings and completed test sales remain separate values. A former owner's listing is removed when ownership changes.

Only the previous and current Look are displayed, with schedule and next Shift. No full evolution timeline is shown. Decorative CSS motion does not advance the state or submit transactions.

Dataset and visibility

The 100-record generation has three test types, four birth-rarity tiers and five schedules. The refreshed initial batch has 61 public and 39 hidden records. A confirmed claim of one of five remaining designated hunt prizes makes that prize public under the pilot’s disclosed rule; other hidden records stay excluded. Selected revealed items are featured as individuals; revealed members can also be inspected through Stashes. Some surfaced records are unclaimed to test that case.

Eight Stashes cover four revealed groups and four sealed groups, varied sizes and both shared and mixed ownership. A sealed group exposes approved container facts only; no member identities, art, origin traits, individual prices or item events. Each member retains its own schedule. A container does not create a new ownership right in the program.

The seeding journal includes real individual sales, an atomic five-item Stash sale, a gift and a claim. Application ask changes are labelled separately. Scheduled Moments are derived dynamically from the program-evaluated current state rather than a fixed list of hand-authored Shift examples.

Routes and public API

Route Behavior
/ Decoded spotlight; paged Stashes and individual Dubs; type, birth-rarity and schedule filters; separate platform-price and ask sorting; live detail and previous/current comparison
/moments Scheduled Look/price comparisons plus confirmed test activity and seller asks; type filters, sorting, pagination and fixed share snapshots
/moves Paged events from the same public data
/chase Playable three-lock game, scoped reveal and designated free Devnet claim; see Discovery
/stashes, /crews Clearly labelled planned acquisition/community flows
/stash Optional Phantom public-address/test-balance read; no consumer signing
/lab Existing disposable technical playground; legacy records remain compatible
/docs Current project notes and evidence

GET /api/vibe/data validates queries, verifies Devnet/program availability, checks record existence, and executes the deployed read-only quote in groups of twenty. Later groups use the first group's program time and a minimum context slot. Records within each quote share that simulation's bank; the whole inventory is not claimed to be one atomic cross-batch ownership snapshot. Responses expose the slot range and common evaluation time.

Records without publication permission are never decoded for the public gallery response. The protected game separately permits scoped puzzle previews. Revealed recipes authenticate against the actual record, and the program quote is checked against the corresponding versioned renderer schedule. All sorting is performed over the complete eligible public inventory before pagination.

Query fields: sort=rare|price-asc|price-desc|ask-asc|ask-desc|next-shift|name, type, rarity, tempo=all|minute|hour|day|month|year, kind=all|sale|bundle-sale|shift|transfer|claim|ask, momentSort=recent|amount, offset, limit (1–12), collectionOffset, momentOffset, a public item, or a public collection. Unknown, duplicate and invalid parameters fail before RPC. Hidden/unknown item IDs receive the same 404. Details expose only approved public data.

Individual pages contain at most 12 entries, Stash pages two, and Moment pages twelve. Stash pages pair a mystery group with a revealed group. Null asks sort last; stable IDs break ties. Filter/sort changes reset the relevant page.

Freshness and caching

No D1, inventory TTL cache or persistent inventory/Moment snapshot is used. Each request owns its complete RPC work; no in-flight promise is shared across Worker request contexts. Every request runs the RPC path again. A 35-second server deadline cancels outstanding RPC, individual read-only RPC attempts are limited to 5 seconds, with one fresh attempt after a transport failure, timeout or temporary HTTP error, and the browser allows 40 seconds to receive the response. Responses use Cache-Control: no-store, read time, program time, generation and slot range. The browser reads on entry, filters, page changes, explicit Refresh, return to a visible tab and 30 seconds after the previous read finishes while visible. It cancels obsolete requests and rejects older generation/slot results. Failed reads do not substitute dummy content.

The independent network-status footer keeps only completed results in its existing 30-second server status cache, with a 15-second server deadline and 60-second client poll. That cache does not contain assets, ownership, prices or Moments.

Moments and exports

For each revealed asset that has shifted, the service derives one most-recent previous/current comparison. Its ID includes the asset and state index. Skipped intervals do not produce an unbounded history or trigger write replay. Scheduled prices are returned by the program; the event's time is its schedule boundary. These events link to the original issuance receipt and are not labelled as newly submitted Shift transactions.

Historical receipt verification runs alongside the current quotes. Unavailable receipts are omitted and flagged with historyIncomplete, while verified current assets and scheduled Moments remain available. Recorded sales, gifts, claims and ask changes render the Look that applied at their recorded event time. They do not drift to the current Look. A selected Moment is frozen for its dialog, caption and PNG export, even if a refresh crosses the next boundary. Exports preserve Devnet Test context, separate price meanings and sealed-container privacy. A permanent searchable history of every scheduled state is not implemented.

Verification and recovery

The current executable and source hashes are preserved in program/artifacts/manifest.json; the earlier executable is retained for provenance. Program upgrade verification confirms deployed bytes and legacy record decoding. Focused Rust tests cover schedule boundaries, prices and ownership invariants. JavaScript tests cover recipe authentication, type dispatch, calendar boundaries, skipped periods and test assignment. Live integration checks cover the deployed program, all records, paging, visibility and read-only behavior.

The user explicitly ruled out the internal preview browser. Verify the published Site APIs over HTTP against actual Devnet. A failed read never substitutes dummy state.

Missing state produces recovery-required; an ordinary timeout or rate limit does not trigger reset restoration. Recovery is administrative: restore the verified current program when absent, then restore retained record keys/payloads and publish the new generation. Restored accounts receive a new on-chain issuance time, so their test schedules restart. Partial loss stops for inspection. No visitor request creates wallets, funds them, deploys a program or replays transactions.

Current minting baseline

The active 100 samples use V3 minting. The Flex ranks by the full evolution-dominant score and shows its evolution/behavior breakdown in item details. Observed batch counts are not labelled as global issuance quotas. Type selects the corresponding Chase profile. Initial sample records were reissued with predecessor bindings and new birth times; old immutable records remain evidence. See Minting.