Documentation
What CLOCK is, how it works, and where the design intentionally stops short of being a prediction market. For the technical build details (Anchor program, cron workers, exact schema), see the repository's README.md.
What is CLOCK
CLOCK is a Solana memecoin launchpad, structurally modeled on launchonmap.fun's find → launch → rewards pile up → something real happens loop — except instead of tying a coin to a place on a map, CLOCK ties it to a real, dated, real-world event sourced from Polymarket.
A coin's name, ticker, deadline, and logo aren't typed in by the person launching it — they're pulled directly from the linked Polymarket event and can only be lightly edited before launch. That means every CLOCK coin points at one specific, externally verifiable thing happening in the world, on a specific day.
How a coin works
Launching a coin mints a normal SPL token on a real pump.fun bonding curve — the same mechanism, liquidity, and trading UX as any pump.fun coin — plus one extra thing: a vault, a program-owned account tied one-to-one to that coin's mint.
Every buy or sell adds a small extra fee (on top of pump.fun's own protocol fee) that flows straight into the vault. It sits there, growing, for as long as the coin trades — visible to anyone on-chain, spendable by no one.
When the linked Polymarket event closes with a clear result, an automated resolver calls the vault's unlock instruction. From that point, every wallet holding the coin can claim its proportional share of whatever accumulated — burning the claimed tokens in the same transaction so a wallet can't claim and then also sell.
Why this isn't a bet
A financial product that pays out based on which way a binary real-world event resolves is a prediction market or derivative, and needs to be regulated like one. CLOCK's vault is deliberately built so it can never work that way, and the distinction is enforced in the contract, not just explained in the UI:
- There is no "YES coin" and "NO coin" — a CLOCK coin is a single, ordinary fungible token. Every holder is exposed the same way, regardless of what they believe will happen.
- The instruction that unlocks a vault takes no outcome/direction argument at all — only a signer and the mint. It has no way to encode, and therefore no way to act on, which side of the event won.
- The claim formula is purely a function of how much of the coin a wallet holds versus the total supply, frozen the moment the vault unlocks. It never reads which way the market resolved.
In short: the payout is conditioned on timing — has the event closed yet? — never on outcome — which side won? That keeps it in the same category as a time-locked treasury buyback, not a bet.
The separate "Launch a CLOCK Ad" flow works differently again: it's a shared, platform-wide fee pool (not tied to any one coin's event) that funds a real promo once it crosses a threshold — see below.
The Polymarket data
Events are pulled from Polymarket's public Gamma API on a schedule — every 5 minutes for new events, every 15 minutes to check whether an already-launched coin's event has resolved — and cached locally, so the product doesn't hard-depend on Polymarket's uptime to stay usable.
Only events tagged with an allowlisted category (politics, crypto, sports, pop culture, economy, and a few others by default) are eligible to be launched — the allowlist is configurable.
The ad fund
Separate from any single coin's vault, a small platform-wide fee cut feeds a shared ad fund. Once its balance crosses a configured threshold, an admin sweeps it to fund a real promo — a shoutout, an ad buy, a livestream — and posts proof on the ad fund page.
Risks & limitations
This is an early build. Specifically, today:
- Holder counts and 24h volume are reported by the app itself after a trade, not independently verified by an on-chain indexer yet — a dishonest client could misreport its own activity.
- A wallet can still work around the single-wallet anti-double-claim protection by moving tokens to a second wallet before claiming from both. Closing this fully needs a balance snapshot taken at resolution time, which isn't built yet.
- The event-resolution worker runs under a single server-held key. That's acceptable while this is small and on devnet; it isn't a setup that should hold real value at scale without a multisig or timelock in front of it.
FAQ
Can I edit the name/ticker pump.fun would otherwise auto-fill?
Yes — the launch flow auto-fills them from the event but they stay editable right up until you sign.
What happens to my tokens after I claim?
They're burned in the same transaction as the claim, so a wallet can't claim its share of the vault and then also sell the tokens on the open market.
What if Polymarket never resolves the linked market?
The vault simply stays locked — trading fees keep accumulating in it until the resolution worker sees a decisive result. There's no forced early unlock in v1.