How to verify Zaply

Zaply publishes its live odds and every bet slip as cryptographically signed events on the open Nostr network — so anyone can independently confirm a price or a bet was genuinely issued by Zaply and hasn't been altered or backdated. Here's how.

What's published

Live odds kind:30100 — each market's prices, re-signed on every update. Addressable, so updates replace in place (you always see the latest, with full history on the relay).

Bet slips kind:30200 — every accepted bet is written as its own signed receipt keyed by bet id: the selection, the locked odds, the stake and potential payout, the timestamp, and — so the price is provable — a reference to the exact signed odds event it locked against (odds_ref = that event's id, and an a coordinate) plus the price the punter said they saw (expected). (Your payout Lightning address is never published.)

The two facts you need

Zaply's public key (npub)
loading…
Zaply's relay
loading…

1 · Verify in one click

Opens a read-only viewer that connects straight to the relay and re-checks every signature in your own browser — live odds arrive tagged ✓ signed; anything that failed verification is counted as “unverified”.

🔎 Open the live verifier

2 · Verify in any Nostr client

Point any Nostr app (Damus, Amethyst, Coracle, noStrudel…) at the relay above, then look up Zaply's npub. The client fetches the same signed events and verifies them independently — neither Zaply nor the relay operator can forge or backdate one without the signature failing.

3 · Verify your own bet

On the board, each line under “Your bets” has a 🔗 Nostr slip link — it opens that bet's signed receipt. That's your independent, timestamped proof of exactly what you backed and at what odds, held on the relay rather than only in Zaply's database.

4 · Verify with code

For the technically inclined — fetch the events and check them with any NIP-01 library:

loading…

A genuine event returns true; change a single digit of the odds and the same check returns false.

5 · Confirm you got the published price

This is the airtight check. Your bet slip doesn't just state its odds — it points back to the exact signed odds event it locked against. So you can confirm the price you got was the price Zaply had published, not a number invented at settlement:

  1. On your slip (kind:30200), read the locked price from the odds tag and the referenced odds event id from the odds_ref tag.
  2. Fetch that exact kind:30100 event by id and read its ['price', <your selection>, …] tag.
  3. They must be equal — both signed by Zaply's one key. If they match, you provably got the published price.
loading…

The slip and the odds event are signed by the same key, so neither the price nor the reference can be altered or backdated without the signature failing.

Note: live odds (kind:30100) are replaceable — each new price for a market replaces the last, so public relays keep only the latest. Once a market has ticked again, the exact version your slip references may no longer be served by a relay. The durable record is the signed reference on the slip itself (the locked price + the odds event id, both under Zaply's signature); Zaply can supply the archived odds event for that id on request.