Every update, fix, and new feature shipped to Toren since day one.
v0.2.8May 2026
Wheel Transparency & Auto-Save
NewEvery wheel spin — both giveaway Survival Wheels and standalone Custom Wheels — is now auto-saved to a public, provably fair transparency page at /wheel/[id] with the seed hash, full entrant list, elimination order, and verification details
NewGiveaway-mode wheel sessions link back to their parent giveaway so visitors can jump from a wheel record to the underlying transparency page in one click
ImprovedWheel records are tagged with their mode (giveaway vs custom) so the transparency page renders the right context and back-link without ambiguity
FixAuto-save is race-safe: the server recomputes the seed hash on write and rejects any submission whose committed hash does not match, so a wheel record cannot be tampered with in transit
SecurityWheel session writes require a valid bearer token and enforce ownership invariants server-side, so one host cannot create or overwrite another host's wheel record
v0.2.7May 2026
Quote-Post Stats Accuracy
FixQuote counts now show correctly on the dashboard active card, completed card, and the giveaway detail page for quote-only and quote+follow giveaways — previously these surfaces always read "Quotes: 0" because the host-side loaders fetched an explicit column list that omitted the quotes column
FixReposts count now shows correctly on the giveaway detail page — same root-cause column-list omission as quotes, fixed alongside it
FixScheduled cron sync now fetches quoters before the follows add-on so quote-only entrants are included in the follow-status batch check, and reconciles stale quote participant rows the same way it handles likes and reposts
FixMulti-criteria eligibility checks now correctly include quote-based entries, so a "quote + follow" giveaway credits accounts that did both
ImprovedFollow-status batch lookups for multi-criteria giveaways (quote+follow, comment+follow, like+follow) run more efficiently, reducing X API quota consumption
v0.2.6May 2026
Survival Wheel & Custom Wheel
NewSurvival Wheel — a new elimination draw mode that spins entrants off one at a time instead of picking the final winner immediately, with running survivor/eliminated counts, color coding, and a persistent toast announcing each eliminated entrant
NewCustom Survival Wheel — a standalone freeform elimination wheel on the dashboard that lets you paste any list of names, supports weighted duplicate entries, and shares the same spin mechanics as the giveaway wheel
NewFirst-open tutorial on the Custom Wheel explains the controls; can be re-opened at any time from the settings panel
ImprovedWheel modals now expand up to 1600 px on wide screens and reflow the alive/eliminated lists into an auto-fill grid so names stay readable as the panel grows
ImprovedEach side panel can collapse independently, and a divider between them can be dragged to split the height however you want — collapsed state and split percentage are remembered
ImprovedSpin duration is configurable, the auto-spin toggle is always visible, entrants are de-duplicated by username, and each spin lands precisely on the chosen segment (the previous implementation drifted as rotations accumulated)
ImprovedWheel participant cap raised to 250 so large giveaways render the full pool on the wheel without truncation
ImprovedWheel input modal polish — name input box widened on desktop and mobile, on-wheel name rendering and size tuned for legibility at high entry counts, parser is more forgiving, content is vertically centered, and survivor / eliminated boxes fill the full wheel height on desktop
FixSkull icon at the wheel center is properly aligned on the rotation pivot (was offset by 1 px previously)
Fix"1 (classic)" preset button in wheel settings re-aligned with the other presets so the row reads consistently
FixQuick Pick dark-mode dropdowns — the Winners and Entrant Cap select options now render with the app's background and foreground colors in dark mode instead of inheriting the OS default white background
FixGiveaway participant counts are accurate and consistent across the active card, detail page, and View Participants page
v0.2.5April 2026
Free Tier Lowered to 3 Live Giveaways
ImprovedFree tier cap lowered from 5 to 3 live giveaways at a time — deleting a giveaway still frees a slot, and Pro/Agency plans remain unlimited
ImprovedDashboard Create X / Create YouTube buttons are now tier-aware: at the cap they disable and show an inline note with a one-click link to upgrade to Pro or Agency
ImprovedServer-side create endpoint returns an updated message naming the new 3-giveaway limit so any client that bypasses the disabled button still gets a clear upgrade prompt
ImprovedPricing page Free tier copy updated to "Up to 3 live giveaways"
v0.2.4April 2026
Free Tier Giveaway Limit & Pricing Roadmap Badges
NewFree tier is now capped at 5 active giveaways at a time — deleting an existing giveaway frees up a slot, and Pro and Agency plans remain unlimited
NewServer-side enforcement on the giveaway create endpoint returns a clear error with an upgrade prompt when a free user reaches the cap, preventing the limit from being bypassed by the client
NewPricing page Free tier card now lists "Up to 5 giveaways at a time" and Pro/Agency cards explicitly show "Unlimited giveaways"
ImprovedPro and Agency plan cards now show feature status badges so visitors understand exactly what is available today versus what is planned
ImprovedPro Tier and Agency Tier cards trimmed to currently-live features only — roadmap items are shown separately on the product roadmap
ImprovedDashboard giveaway cards now always show an Entry Type row (Like, Comment, Repost, Follow, Quote) so likes-only or other single-action giveaways no longer appear empty
FixQuote-post giveaways now display the correct "Quote Repost" entry-type label on both the public transparency page and the dashboard card — previously they were mislabeled as "Repost" because the quotes flag was being conflated with reposts during creation
v0.2.3April 2026
Account-Level Bot Detection
NewAutomatic bot detection on X uses layered account and activity signals to flag suspicious giveaway entries without exposing bypassable detection thresholds publicly
NewHosts can manually mark a flagged entry as eligible from the participants tab when an automated filter catches a real user. The override persists across syncs
ImprovedBot filtering applies to all X entry types: comments, likes, reposts, follows, and quote posts
ImprovedHost-side participant records include enough context to review suspicious entries and override false positives when appropriate
ImprovedFlagged entries remain visible to the host for auditability, but are excluded from the eligible draw pool
v0.2.2April 2026
Participant Eligibility Accuracy
FixEligible count on the dashboard now accurately reflects the actual draw pool for mixed giveaways — for giveaways requiring both a comment and an engagement action (e.g. likes), synthetic engagement records are now marked ineligible since only commenters can win
FixParticipants who performed multiple engagement actions (e.g. both liked and reposted) now have all their actions recorded — previously only the first action seen was captured, which could affect eligibility checks for complex giveaway configurations
v0.2.1March 2026
Transparency Page Navigation Fix
FixTransparency pages for Pro and Founder plan hosts now correctly display the Toren header and navigation — previously these hosts saw a completely blank header after sharing their giveaway link
FixToren header is now hidden only when a host has actively configured Agency white-label branding, not for all paid plan users
FixClaim API routes updated to correctly handle Next.js 16 async params, resolving 400 errors when accessing claim links
v0.2.0March 2026
Winner Redemption Portal
NewPrivate prize claim links: each winner automatically receives a unique, secret URL the host can copy and send via DM — no manual coordination needed
NewPublic claim page at /claim/[token] where winners verify their X identity via OAuth, confirm they are the correct account, and submit their contact details to the host
NewX identity verification on the claim page is ephemeral — only the username is checked and the session is immediately signed out, no full account is created
NewPrize contact fields: hosts can specify exactly what information they need from winners at giveaway creation (e.g. email, shipping address, Discord) — shown as dynamic form fields on the claim page
NewRedemption status tracking in the winner modal: each winner shows a color-coded badge — red Not Redeemed, yellow Processing, green Completed
NewOne-click status updates directly in the winner modal — hosts can move a winner through the redemption pipeline without leaving the page
NewClaim link copy button per winner in the modal, with instructional text reminding the host to send the link privately
ImprovedCSV winner export now includes Redemption Status and Claim Link columns
SystemDB migration adds claim_token and redemption_status columns to winner_records, a new winner_claims table, and prize_contact_fields to giveaways — run via /api/admin/migrate
v0.1.9March 2026
Provably Fair Platform Standard
NewNew public page at /provably-fair-platform explaining the Provably Fair designation, Toren's long-term vision for industry standardization, and the six requisites any platform must meet
NewSix core characteristics of Toren's implementation listed at a principled level, consistent with a standard that mandates outcomes rather than a single prescribed approach
NewForward-looking statement on a planned certification program through which any promotional sweepstakes platform could apply for independent verification of compliance
ImprovedFooter copyright updated to include a clickable "A Provably Fair Platform" link on every page, directing users to the new standard page
v0.1.8March 2026
X Post Preview & Entry Type UX
NewGiveaway creation Step 1 now shows a live post preview card after a valid X post URL is confirmed — displays author avatar, name, handle, full post text, media (photo or video thumbnail), and post date
ImprovedExternal link icon in the preview card opens the original post on X in a new tab for quick manual verification
ImprovedPost data is sourced from the same API call already made during URL validation — no extra network requests
ImprovedLikes, Reposts, and Follows entry type options temporarily removed from giveaway creation and the Change Entry Type modal until the underlying data collection is fully reliable — Comments remains the active entry method
v0.1.7March 2026
White-Label Branding Dashboard
NewNew /dashboard/branding page for agency plan users — a dedicated, purpose-built interface for managing all white-label settings in one place
NewColor pickers with hex input fields for Primary, Accent, and Background theme colors, each with a reset-to-default button and description of where the color appears
NewLogo and favicon upload with live image preview in the panel
NewBrand name, tagline, and footer text fields with real-time updates in the preview panel
NewLive preview panel that renders a simulated giveaway card and updates as colors, logo, and text change — no need to save to see the result
Improved"Branding" link added to the header account dropdown for agency users only
ImprovedNon-agency users who visit /dashboard/branding see an explanatory locked state with an upgrade prompt rather than a broken page
v0.1.6March 2026
Provably Fair Proof Accuracy
FixEligible Entries count in the fairness proof now correctly shows the shrinking pool size per winner — Winner #2 correctly displays one fewer eligible entry than Winner #1, and so on
FixModulus in the winner index derivation formula on the transparency page now reflects the actual pool size at the time each winner was selected, not the total eligible count
Fix"From X eligible entries" label in the proof steps now correctly decrements per winner for no-duplicate draws
ImprovedThe pool_size field stored per winner at draw time is now read correctly throughout the public proof display, with a safe fallback to total eligible count for legacy draws that predate this field
v0.1.5March 2026
ASCII Pool Ordering
ImprovedPool sorting switched from locale-sensitive comparison to deterministic ASCII (Unicode code-point) order — no locale or environment settings can affect the result
ImprovedHandles containing digits, uppercase letters, underscores, and lowercase letters now sort in consistent, well-defined order across all environments
ImprovedTransparency page verbiage updated to describe ASCII ordering precisely, replacing the ambiguous "A to Z" phrasing
ImprovedInline proof log and code comments updated to reflect the exact sort method used
v0.1.4March 2026
Multi-Select Entry Types
NewEntry types are now multi-select — hosts can combine Comments, Likes, Reposts, and Follows in any combination
NewFollows added as a supported entry type, fetching followers of the connected X account via the X API
ImprovedEntry types stored as a JSON array in the database, with full backwards compatibility for legacy single-type giveaways
ImprovedGiveaway creation step 2 updated to a multi-toggle UI with all four entry type options
ImprovedChange Entry Type modal on the live dashboard also updated to the multi-toggle UI
FixStale participant cleanup now correctly handles mixed entry types — deselecting one type only removes records for that type, leaving others intact
v0.1.3March 2026
Provably Fair Algorithm v2
ImprovedPool ordering changed to lexicographic order by X handle, making the draw fully reproducible without timestamps
ImprovedShrinking modulus algorithm for multi-winner draws without duplicate winners, so each subsequent winner is drawn from a smaller pool
NewExtended proof fields now stored per winner: pool_index, pool_size, and pool_ordering
ImprovedVerification center now reconstructs the correct formula for each individual winner using their own stored derivation data
FixPublic eligible entrants list on the transparency page now sorted to exactly match the draw order
ImprovedTransparency page updated to explain that entry indexes are assigned by handle order, not by timestamp
ImprovedDraw logs now include pool ordering method, pool size at draw time, and clearer winner index descriptions
v0.1.2March 2026
Entry Types
NewLikes and Reposts entry type selector added at giveaway creation
NewComments, Likes, Reposts, and Likes & Reposts are now all fully supported as entry types
NewChange Entry Type button added to live giveaway dashboard
NewRefresh route now fetches likers and reposters from the X API
ImprovedEntry type is stored in the giveaway record and shown in the dashboard
ImprovedComment keyword filter is hidden automatically for non-comment entry types
v0.1.1February 2026
Winner Controls & Eligibility
NewDuplicate winners toggle lets hosts allow one person to win multiple prizes in the same draw
ImprovedUpdated eligibility wording to clearly communicate how duplicate wins work to participants
NewUpdate Post URL button allows hosts to correct or change the linked post after a giveaway is live
ImprovedExplanatory text added under the Update Post URL button for clarity
ImprovedButton layout on the live dashboard reorganized for better usability
FixUnique seeds are now generated per re-roll so each redraw produces a distinct cryptographic proof
v0.1.0February 2026
Multi-Winner Draw System
NewFull multi-winner draw support: hosts can now select multiple winners from a single giveaway
FixRace condition prevention using an atomic draw lock to stop simultaneous draw attempts
ImprovedVerification logic updated to correctly handle and display multiple winners
FixDraw timestamp display updated to match the format used in the verification center
ImprovedWinner selection aligned with the entry display order for consistency
ImprovedPlan-gated transparency features: branding is hidden on paid plan giveaway pages
v0.0.9January 2026
Live Tracking & Audit Trail
ImprovedOriginal comment timestamps now shown on the entry log instead of the collection time
FixMobile horizontal scrolling enabled on the giveaway entry log table
NewLive participant tracking: entry counts update in real time on active giveaways
NewCSV export added for the full eligible entries list
NewTransparency link added to all completed giveaways for public audit access
ImprovedBlockchain terminology updated across the platform to be network-neutral
ImprovedEntry collection improved to include all conversation thread participants, not just direct replies
v0.0.8January 2026
Quick Pick & Provably Fair Foundation
NewPre-draw seed commitment: a SHA-256 hash of the server seed is published when a giveaway is created, before any entries are collected
NewSolana blockchain entropy integrated as the public randomness source for all re-rolls
NewHistorical re-roll proof displayed on public transparency pages, showing every draw ever made
NewQuick Pick experience for instant winner selection from any post without creating a full giveaway
NewPick winners from post likes, replies, and quote posts via quick pick
ImprovedTerminology updated from retweets to reposts across the platform
FixVerification center errors fixed by removing references to non-existent database columns
v0.0.7December 2025
Transparency & Giveaway Improvements
ImprovedEnhanced giveaway public pages with additional transparency and audit information
ImprovedActive giveaway limit per account increased to support larger-scale creators
FixFixed an error that occurred when counting participants from X post replies
ImprovedGiveaway creation form and detail display redesigned with new information fields
ImprovedWinner icon updated to a trophy for clearer visual distinction in draw results
NewRefreshing giveaway statistics enabled for all connected platforms
v0.0.6December 2025
Security & Stability
SecurityComprehensive security headers and content policies added across the platform
FixFixed Stripe checkout flow and white-labeling for agency plan customers
FixHydration errors resolved across multiple pages for consistent server and client rendering
FixYouTube OAuth redirect URI corrected to fix broken Google login
NewPassword change functionality added for both regular users and administrators
FixVarious authentication and session handling bugs resolved
v0.0.5November 2025
Custom Domains
NewCustom domain setup via Cloudflare Workers for white-labeled giveaway pages
NewDomain connection status checker added to the profile page
NewStep-by-step DNS and Worker setup guide with troubleshooting assets
ImprovedProfile page updated to manage custom domain configuration in one place
FixDomain verification logic updated to correctly support Cloudflare Worker routing
SystemSecurity policies tightened to ensure proper site functionality with custom domains
v0.0.4November 2025
Admin Tools & Management
NewFull admin dashboard with testing suite covering API endpoints, database access, and authentication
NewAdmins can now grant free access to premium plans for any user account
FixMultiple API endpoint and database table access errors resolved
ImprovedHelp Center and FAQ pages rebuilt with clearer structure and content
ImprovedDuplicate participant behavior documented with a note visible to giveaway hosts
ImprovedAdmin testing interface made fully responsive for mobile use
v0.0.3October 2025
Look, Feel & AI Assistant
NewDark mode theme added across the entire platform with automatic system preference detection
ImprovedLogo switches to white automatically when dark mode is active
NewAI chatbot integrated using OpenAI to answer giveaway and platform questions
NewTerms & Conditions page added
ImprovedFAQ section animated with smooth expand and collapse interactions
ImprovedComprehensive SEO metadata and Open Graph tags added across all pages