Holder verificationComing soon
Prove you hold a Stock Token.
Two calls and one wallet signature. You get a signed token your own backend can check offline against our public key. No gas, nothing leaves the wallet but a signature.
Coming soon
Not live yet
Holder tokens need Ed25519 signing, which the edge build does not carry yet. The API below is the shape it will ship with, so you can write against it today. Ballots, votes and weighted tallies are live now and need no wallet connection.
Browse ballots1. Ask for a challenge
POST /api/verify/challenge
{ "address": "0x…", "symbol": "AAPL", "min": "1", "audience": "yourapp.com" }
→ { "nonce": "…", "message": "StockVotes holder verification\n…", "expiresAt": "…" }2. Sign it, send it back
const signature = await wallet.signMessage({ account, message });
POST /api/verify { "nonce": "…", "signature": "0x…" }
→ 200 { "ok": true, "token": "eyJ…", "claims": { "sub": "0x…", "symbol": "AAPL", "balance": "12.5", … } }
→ 403 { "ok": false, "balance": "0", "min": "1" }3. Check the token on your server
import { createRemoteJWKSet, jwtVerify } from "jose";
const keys = createRemoteJWKSet(new URL("https://<host>/api/verify/keys"));
const { payload } = await jwtVerify(token, keys, { audience: "yourapp.com" });
// payload.symbol, payload.balance, payload.block are yours to trustNo JWT library? GET /api/verify?token=… does the same check for you.