The genuine article
One real song among three from other artists. If you know a few songs, you're in.
FanVerify replaces the traffic-light puzzle with something scalpers can't script: a timed, hands-on challenge about the artist. Real fans breeze through it. Bot farms and touts hit a wall.
— awaiting verification —Solver farms and vision models clear traffic lights faster than humans do. They're a speed bump, not a wall.
Virtual waiting rooms measure patience and bandwidth. Neither correlates with being a fan.
Every ticket a bot wins is a ticket a fan buys back at 3×. The artist gets the blame.
Same integration story as any CAPTCHA. The difference is what happens inside the box.
One script tag and a div. The badge sits where your CAPTCHA used to. You tell it which artist via data-context.
The server composes a fresh, randomized challenge from that artist's knowledge pack. Drag, match, recall. Timed.
Exchange the token for a signed result with a 0–1 score. Gate inventory, cap quantities, or route to a slower lane.
Nothing here is fixed. Every question comes from a knowledge pack that the artist, their label or the promoter owns and edits. Add the things only real fans know, drop anything you'd rather not ask, write tour-specific questions for a single on-sale, and pick how hard each event should be.
// One entry in your pack. That's the whole job.
{
"id": "tour-opener",
"prompt": "Which city opened the Live '25 tour?",
"answers": ["Cardiff"],
"difficulty": 1
}Every round is generated from verifiable facts: titles, dates, running orders, personnel. No lyrics, no audio, and artwork only when you hold the rights.
One real song among three from other artists. If you know a few songs, you're in.
Which of these songs or albums are actually theirs? Decoys are genuine titles from other artists.
Put a random subset of albums in the order they came out. Hardcore mode only.
Six tracks, three albums. Every track has to land on the right record.
Select every track from one album among B-sides and lookalikes from others.
Six tracks from one album, in tracklist order. Hardcore mode only.
Slide to the exact year of a release, a tour, a lineup change.
Spelling is forgiven. Close counts.
Personnel, producers, venues. Fuzzy-matched, so typos don't punish real fans.
A client snippet that fills a hidden fanverify-response field and a server call that returns success and a score. Works with any stack. Drop it into a queue page, a checkout, or a presale registration.
<script src="https://fanverify.dev/fanverify.js" async defer></script>
<form action="/checkout" method="POST">
<!-- context = which knowledge pack to challenge with -->
<div class="fanverify"
data-sitekey="fv_pk_live_…"
data-context="oasis"
data-callback="onFanVerified"></div>
<button type="submit">Buy tickets</button>
</form>No single layer is unbeatable. Stacked, they turn a $0.001 solve into a slow, flaky, expensive one, which is the economics that kills scalping.
Solutions are AES-GCM sealed inside the challenge token. The browser only ever sees the question.
Rounds are assembled from a fact graph: random subsets, random distractors, random ordering. No two sessions share an answer key.
Sorting and matching rounds need a real drag gesture. Speed and pointer signals are reported to the vendor as flags, so scripts stand out without real fans being penalised.
Each round has a server-enforced time limit, and every answer is final. There's no oracle to brute-force.
Verification tokens expire in two minutes and can be redeemed exactly once at siteverify.
Challenge creation and answer submission are throttled independently, so a farm can't grind through the pool.
Run the full checkout demo with a real siteverify round-trip, then read the integration docs.