// release notes
Changelog
Keep a Changelog format. Subscribe via RSS.
2026-07-19 · v0.11.0
embeddable_widget
- addedwidget.js — a copy-paste embeddable score badge for third-party claim pages. Display-only: shows the cached decision for an address SybilShield has already analyzed, or an honest "not yet scored" — never gates the host page's own form, never scores an address it's never seen. See /docs/widget.
2026-07-17 · v0.10.0
snapshot_governance_strategy
- addedA Snapshot governance-strategy validation (MIT, open source) that gates proposal/vote eligibility on a wallet's real DROP/REVIEW/KEEP decision. Built + tested against the live production API; publication to snapshot-labs/score-api is a pending human step.
- changedGET /v1/score/:address now publicly returns decision, decision_confidence, and rationale_codes (previously stored, not returned).
2026-07-16 · v0.9.2
ops_hardening
- fixedThe documented backup-restore procedure was silently broken (piped into a socket nothing was listening on) — replaced with a real, tested restore drill, verified against a local dump and a deliberately corrupted one.
- changedConsolidated the self-host / white-label deployment guide into one section — anyone can run their own copy, MIT licensed.
2026-07-14 · v0.9.1
rate_limit_fix + quota_banner
- addedDashboard banner at ≥80% of the monthly fair-use quota, before the hard cap hits.
- fixedThe authenticated per-minute rate limit was silently returning 500 instead of 429 past the cap — found via a real concurrency load test, fixed, now guarded by a permanent regression test.
2026-07-12 · v0.9.0
ens_resolution
- addedServer-side ENS name resolution — GET /v1/resolve/:name (20/min rate limit). /dashboard/new detects *.eth cells and resolves them on an explicit click, never automatically.
2026-07-11 · v0.8.1
cluster_viz + preset_drift_guard
- addedCluster network graph on the analysis detail page — star-topology view of detected clusters. A force-directed, address-level-edge upgrade is a later idea, not built yet.
- addedAnalysis responses now echo the canonical preset drop/review rule text, removing a second hand-typed copy on the dashboard that had drifted (a real bug, since fixed).
- addedCI now fails if the TS and Python preset definitions diverge on any threshold or description.
2026-07-01 · v0.8.0
free_public_good
- changedSybilShield is now a free public good, funded by grants, not customer revenue. Pricing/plans/checkout removed from the site, docs, and dashboard. Fair-use limits stay as anti-abuse, not a paywall. Stripe/Atlos billing code stays in the repo, dormant.
2026-07-01 · v0.7.0
threshold_override_controls
- addedPOST /v1/analyses accepts threshold_overrides — tune a preset's drop/review score or cluster-size knobs per analysis.
- added/dashboard/new: advanced per-analysis threshold-override UI, and a paste-addresses textarea alternative to file upload.
2026-06-25 · v0.6.1
exchange_set_fix + observability
- fixedKnown-exchange set expanded from 12 to 66 curated CEX/bridge wallets — the actual fix for CEX-shared-funding false positives, previously only mitigated with a cluster-size threshold bump.
- addedmodel_version exposed on GET /health.
2026-06-01 · v0.6.0
free_tier_enforcement
- addedPer-plan caps enforced server-side: max addresses per analysis, max concurrent in-flight jobs, addresses_file_url size limit, and per-analysis Alchemy CU budget. Returns structured 400/429 with limit + upgrade_url.
- changedDashboard polling + read endpoints (GET /v1/analyses/:id, /results, /account, etc.) no longer count against the monthly quota. The 100/mo free budget is now 100 billable POSTs, not 100 of anything-including-status-polls.
- addedcomplete_over_budget terminal status — if a run exceeds its CU budget, partial results are kept and the dashboard shows an amber upgrade banner instead of pretending it finished clean.
2026-05-26 · v0.5.0
decision_ready_api + presets
- addedDecision-ready results: every address gets decision (DROP/REVIEW/KEEP) + decision_confidence + rationale_codes, computed server-side from a named preset. No more threshold-picking by the customer.
- addedFour presets — airdrop / dao / grant / balanced — calibrated against 600 real wallets. Pre-pilot retro: 100% recall on confessed sybils, 0% false-positive on confirmed governance voters after a cluster-threshold tune. Full numbers at /blog/preset-calibration.
- addedCluster-only mode (POST /v1/analyses with mode: cluster_only) — skips ML scoring, returns multi-wallet farm groupings only. New ML /cluster-only endpoint.
- addedCSV-upload form on /dashboard/new (replaces the API-only flow), live progress card with auto-refresh, and a per-address feedback loop (thumbs-up / false-positive / false-negative) wired to the feedback table + audit log.
- changedML model retrained on a real Alchemy corpus (v0.5.0-gov-expanded) — genuine pool grew ~10x via a new on-chain governance-voters source. Adversarial recall 0.0 → 1.0.
2026-05-25 · v0.4.3
honesty_pass
- changedWalked back over-claims across the public surface: Trust page compliance set to real state (SOC 2 not started, pentest not scheduled), homepage drops aggressive copy, pricing restructured to Free Sandbox / Pilot / Growth (coming soon) / Enterprise (coming soon).
- changedCrypto checkout (Atlos) marked beta — works in code, used on the manual Pilot flow only. Self-serve production billing is on the roadmap, not live.
- addedLegal pages (/privacy, /terms, /cookies), public unauth score lookup (GET /v1/score/:address), and the GET /v1/audit-log endpoint the Trust page promises.
2026-05-24 · v0.4.2
alchemy_live + quota_enforcement
- changedSwitched crypto rail from NowPayments to Atlos. Non-custodial wallet→wallet, 0% fees, no KYC for buyer or merchant.
- addedReal per-plan quota enforcement: api_calls_this_month counter, 429 monthly_quota_exceeded once limit hit, per-customer RPM rate-limit.
- addedReal Alchemy provider on production — Ethereum mainnet live, MockProvider only in tests.
- addedMonthly quota reset cron (00:05 on the 1st).
2026-05-24 · v0.4.1
production_deploy
- addedBackend live on Hetzner (api.sybilshield.org) with Let's Encrypt TLS, nginx reverse proxy, daily pg_dump backup.
- addedFrontend on Vercel (sybilshield.org) with custom 404, proper favicon + OG, /blog/[slug] dynamic route.
- addedEmail routing via Cloudflare — support@ + security@ forwarded to ops mailbox.
2026-05-24 · v0.4.0
site_structure_expansion
- added14 new public pages: compare, lookup, pricing-calculator, quickstart, api-playground, trust, sub-processors, customers, changelog, plus 4 product use-case landings.
- addedDashboard depth: notifications inbox, webhook deliveries log, team invites with roles, watchlist with daily re-scoring.
- added5 new backend tables and matching REST endpoints.
2026-05-22 · v0.3.2
crypto_checkout + production_deploy
- addedNowPayments integration for BTC/ETH/USDC checkout on growth/scale plans.
- addedProduction deploy configs: Vercel + Railway + Supabase + Upstash.
- fixedAlchemy provider switches in automatically when ALCHEMY_API_KEY is set.
2026-05-19 · v0.3.1
seo + legal_pages
- addedSEO basics: favicon, OG tags, sitemap.xml, robots.txt, custom 404.
- addedPrivacy notice, Terms of service, Cookie policy.
- addedFirst retro-analysis blog post: Linea airdrop methodology.
2026-05-16 · v0.3.0
genesis_design + dashboard_polish
- changedSite-wide visual refresh: Genesis design system (black + neon lime/purple).
- addedDashboard subpages: analyses, api-keys, billing, single-analysis detail.
- addedMobile hamburger menu, sandbox banner, footer reorg.
2026-05-12 · v0.2.0
audit_log + retrain_orchestrator
- addedAudit log writes on every flagged score and feedback verdict.
- addedRetraining cron orchestrator with PSI + adversarial recall triggers.
- addedderive_ens_veterans + derive_power_users scripts for G1/G2 labels.
2026-05-09 · v0.1.0
first_green_build
- addedDockerized test suites (API vitest + ML pytest) — both green.
- fixedfastify-raw-body version pin for Stripe webhook signature verification.
- fixedMulti-chain analyses persist per-score chain (no longer hardcoded).
2026-04-30 · v0.0.1
initial_release
- addedMonorepo scaffold, Drizzle schema, six detection methods, ML model + adversarial loop, REST API + worker pipeline.
- addedPublic appeal endpoint with 48h SLA.