Private price alerts · Solana

Watch anything.
Tell no one.

Everyone downloads the same public price table. Your alerts are checked here, in your browser — the server never learns what you watch.

Loading the public table…

How it works

Signal log

Fired signals from this browser, newest first. Stored encrypted with your alerts.

  1. Nothing has fired yet.

Storage

Alerts are encrypted with a key that never leaves this browser.

Install

Add Zignal to your home screen or dock and it runs as its own window — handy for keeping alerts alive. It still only checks while it's open.

In Chrome/Edge: the install icon in the address bar. On iPhone: Share → Add to Home Screen (iOS 16.4+ shows notifications for installed apps).

What it is

Price alerts without handing over your watchlist

An alert service normally has to know exactly what you're waiting for — the token, the price, the direction, and how to reach you. Zignal flips that around: the server publishes one price table that everyone downloads, and your browser does the watching. Your alerts are stored encrypted on your device and never sent anywhere.

  • For traders and holders who'd rather not reveal entries, exits or bags to an alert service.
  • Answers "tell me when…" — a price level, a % move from now, a 24 h change, or one token priced in another.
  • No account, no email, no phone number. Notifications come from your own browser.
  • ~300 top Solana tokens out of the box, plus any token someone asks to add.

What you're looking at

Reading the signal field

Each spoke is a token

Every token in the public table sits on the ring, ordered by market cap clockwise from twelve o'clock.

Length = 24 h move

Lime spokes reach outward for tokens up over 24 hours, coral spokes point inward for tokens down. Length grows with the size of the move (square-root scale, full length at 30 %).

The sweep = next refresh

The beam goes round once per refresh. When it reaches twelve o'clock the server's new table lands and a ripple runs out from the centre.

White flash = just moved

A spark at the tip means the token moved at least 0.5 % between the last two tables — about a minute.

Diamonds = your signals

Each of your alerts is a diamond on the outer orbit at its token: cyan while armed, amber once it's more than 85 % of the way to firing, a white burst when it fires. Only your browser draws them.

The hub

Seconds until the next table, and how many of your signals are armed or near. Hover or tap any spoke for its price.

How it works

The server broadcasts. Your browser decides.

  1. 01

    Jupiter → server

    Every 60 s the server fetches prices for the table's tokens from Jupiter's keyless price API (price/v3, 50 tokens per request) and the token lists hourly.

  2. 02

    Server → everyone

    It publishes one table — symbol, price, 24 h change, liquidity — identical for every visitor and cached with an ETag. Nobody asks for "their" tokens.

  3. 03

    Your browser checks

    Your alerts are decrypted in memory and compared against each new table. Nothing about them is sent back.

  4. 04

    Your device notifies

    A system notification (through the page's service worker), an optional synthesized chime, and the tab title flashing. All local.

Jupiter Zignal serverone public table your browser another browser another browser alert · you

Limits, honestly

  • Only while open. Alerts run while this page or the installed app is open. There is no server-side push, because a push service would have to know what to alert you about — which is exactly what Zignal avoids. Close the tab and checking stops.
  • Background tabs can be slowed. Browsers may delay timers in hidden tabs to about once a minute, and phones may suspend them entirely. Keep it visible or installed for the most reliable alerts.
  • 60-second granularity. A spike that starts and ends between two tables won't be seen. Prices are Jupiter's aggregated USD prices, not a specific exchange's last trade.
  • Coverage. ~300 tokens chosen by market cap, liquidity and Jupiter's top lists, plus tokens people request (kept 30 days after the last request). Tokens Jupiter can't price can't be tracked.

Built with

Plain parts, chosen for privacy

  • Canvas 2D signal field — 300 animated spokes, a refresh-synced sweep, additive glow sprites; pauses when hidden or scrolled away; reduced-motion aware.
  • WebCrypto — AES-256-GCM with a non-extractable key generated in your browser and kept in IndexedDB, or PBKDF2-SHA256 (600,000 iterations) from your passphrase.
  • Service worker — system notifications and an offline app shell; it never caches API responses and has no push subscription.
  • WebAudio — the chime is synthesized on the fly (no audio files), off until you turn it on.
  • Zero-dependency Node server — one Jupiter loop with timeouts, 429 back-off and a watchdog; ETag-cached, gzipped table; strict CSP with hashed inline script.
  • Self-hosted fonts, no third-party anything — the page talks only to its own server. No token logos are loaded from outside hosts.

Features

Free, and more if you burn

Free

  • 5 alerts
  • Price above / below, or a % rise / fall from when you set it
  • Re-arm after firing (with 0.5 % hysteresis and a 5-minute cooldown)
  • System notifications, chime, title flash, signal log
  • Device-key or passphrase encryption
  • Request any Jupiter-priced token for the public table

Unlock with the coin

  • Unlimited alerts
  • Multi-condition rules — up to 4 conditions, all or any
  • Extra conditions: 24 h change, and one token priced in another (e.g. JUP in SOL)
  • 24 h sparkline on every alert (10-minute samples)

50,000 tokens burned · 30 days · burns stack

How to unlock

Honest note: Zignal never sees your alerts, so the alert limit and premium rule types are enforced in your browser. The sparkline history is served only to unlocked wallets.

The coin

One job: burn to unlock

In Zignal, the coin does one thing: burning it opens premium for 30 days. The burn is an SPL burnChecked instruction in a transaction your wallet signs and sends — the tokens are destroyed on-chain. Nothing goes to us; there is no treasury. Our server reads the confirmed transaction and checks the mint, amount, burn authority and fee payer before unlocking.

Burning destroys tokens permanently. It gives no return, revenue share or financial right. The free version stays free.

The coin is coming soon — until its address appears here, burning is switched off and everything free works as normal.

Signing in is a free message signature — no transaction, no fee. The wallet you sign in with is the only thing the server learns about you, and it has nothing to do with your alerts.

Unlock premium

Checking…

Burn ledger

Burned through Zignal—
Unlock burns—
Current supply—
  1. No burns yet.

Privacy & safety

What the server can see, and what it can't

Can see

  • That your IP loaded the page and keeps downloading the public table (like any website). Not logged; IPs sit in memory briefly for rate limits.
  • A token request: that someone asked for a mint to be added. Not your alert, threshold or direction.
  • If you unlock premium: the wallet you sign in with, your burn (public on-chain anyway) and your unlock expiry; that you downloaded the full sparkline history.

Can't see

  • Your alerts: tokens, prices, directions, rules, or when they fire.
  • Your notification settings or your signal log.
  • Your passphrase or device key — they never leave your browser.

Worth knowing

  • The device key protects a copied storage folder or backup — not someone using this same browser profile. Add a passphrase for that.
  • Notifications appear through your operating system's notification centre, like any site's.
  • Browser extensions with access to this page can read what it shows while it's open.
  • Never asks for a seed phrase or private key; never holds or moves funds.
  • Signing in is a free message signature; the burn transaction is shown before you sign.
  • No analytics, no third-party scripts, fonts or images — the page only talks to its own server.
  • The server's Solana RPC key never reaches your browser. Server storage: unlocks, the public burn ledger, the price table and requested-token list.

FAQ

Questions

Is the data live?

The server refreshes the table every 60 seconds from Jupiter and your page picks it up within a few seconds of each refresh. The hub counts down to the next one.

Will I get alerts with the tab closed?

No. Checking happens in the page, so it has to be open (a background tab works on most desktops, though browsers may slow it). Installing Zignal as an app keeps it in its own window. Server push would require the server to know your alerts, which is the thing Zignal is built to avoid.

Why isn't my token listed?

The table holds ~300 top tokens plus requested ones. Paste the mint address into the token box and request it; if Jupiter has a price for it, it joins the public table within seconds for everyone.

Does it cost anything?

No. Five alerts with price and percent conditions are free forever. Premium (unlimited alerts, multi-condition rules, 24 h change and ratio conditions, sparklines) is unlocked by burning the app's coin from your own wallet.

What happens when I burn?

Your wallet signs a transaction that destroys the stated amount and carries a short memo. Once it's confirmed, the server verifies it on-chain and unlocks premium for 30 days for that wallet; another burn adds 30 more days.

Which wallets work?

Any Solana wallet supporting the Wallet Standard with message signing — Phantom, Solflare, Backpack and others. Alerts themselves need no wallet.

Can I use it on mobile?

Yes. On phones, keep the page open or install it to the home screen; iOS shows web notifications only for installed apps (iOS 16.4+).