Vendors & collection defaults · claim requirements

Stake gates — NNS + SNS · V1 enablement

Change gallery for enabling the two stake gates in V1 (Donna, 2026-07-22 — prompted by Remco: the backend NNS/SNS claim checks are already working). "Has a stake" stops being a disabled teaser and becomes authorable wherever claim requirements are edited — the vendor tier editor and the collection-defaults rule editor — and visible wherever requirements are shown. Holds tokens from a collection stays front-end V2 and fail-closed (R75); Restrictions and Rewards are untouched. Requirement semantics are unchanged: types combine with AND; whitelists remain one union gate (ruling 2026-07-22); a tier may carry one NNS and one SNS gate, both binding.

Change spec: Design Documentation/stake-gates-v1-enablement.md. Base galleries this modifies: Vendor creation (frame 07/A26) · Collection defaults (A2/A2b) · Vendor claim (frames 01/02/05).
01Requirement editor — stake gates authorableThe tier requirement editor (vendor creation frame 07; the collection-defaults rule editor A2b gets the identical change) with the two stake accordions active instead of "Coming soon". Each gate: NNS = an ICP neuron; SNS = a governance canister that must resolve before Save enables. Both carry optional minimum_stake (the staked token — ICP for NNS, the SNS's native token otherwise) and optional minimum_dissolve_delay (dissolve delay, not neuron age — ruled 2026-07-03); both empty = any active stake. Within a gate the two fields AND together. One NNS + one SNS max per tier — a second SNS requirement is rejected at save (existing checklist rule). Token-hold stays a disabled teaser.

Edit tier — Founder

✕
Requirements combine with AND. A collector must satisfy every active requirement below. Whitelists count as a single requirement — selected lists merge into one eligible list, so a collector only needs to appear on one of them.
Whitelists2 selected
Has a stake — NNS (ICP neuron)Active

Leave stake and dissolve empty to accept any active ICP neuron. The claimant proves a neuron they control — or are hotkeyed to — at claim time. The claim limit counts per neuron across this whole vendor, whichever hotkeyed address claims — 1 is the safe default.

Has a stake — SNS (ICRC-1 neuron)Active

Resolved: OpenChat · native token CHAT. Save stays disabled until the canister resolves.

One SNS gate per tier — adding a second is rejected at save.

Holds tokens from a collectionComing soon
02Public claim panel — stake requirements shownBuyer-facing requirement rows on the vendor claim views (claim gallery frames 01/02): public panels stop hiding non-allowlist requirements (the old V1-scope rule, A28) and list the stake gates with the same met / unmet treatment. Copy pattern: Stake: <network> neuron + the thresholds in plain words. Allowlists stay one row (union — "on any one of these lists"). Eligibility remains a cached hint, re-validated at claim time.
This tier requires
On an allowlist — Spring OG or Founders
You're on Spring OG. Being on any one list is enough.
Stake: ICP (NNS) neuron
At least 10 ICP staked, dissolve delay 6 months or more. Your neuron 4f7a… qualifies.
Stake: OpenChat (SNS) neuron
At least 500 CHAT staked. No qualifying neuron found for your principal.

Meet every requirement to claim. Eligibility is re-checked at claim time.

03Claim confirm — prove the stake · failure stateThe claim payload carries one NNS neuron id and one SNS neuron id (existing wire shape). When a tier has stake gates, the confirm modal adds a neuron picker per gate — the FE fetches the wallet's controlled and hotkeyed neurons (hotkeys count — genesis neurons are hotkeyed; 99 in 100 in practice), pre-filtered to qualifying ones. Eligibility is a live check (ruled 2026-07-22): one staked neuron backs claims across any number of drops and collections. Within a single drop, claims per neuron are capped by the gate's Max claims per neuron (default 1; set per vendor, or in collection defaults like any claim rule) — counted regardless of which hotkeyed address presents it, so a neuron hotkeyed to 100 addresses can't replay the gate at the default. A neuron at its limit on this vendor shows as Used (error key CLAIM_NEURON_LIMIT_REACHED); it stays fully usable on every other drop. The gate is re-verified against the governance canister before settlement; on failure nothing is charged. Canonical error copy per the enforcement checklist: missing id → CLAIM_NEURON_MISSING; a neuron that stopped qualifying fails cleanly with the reason.

Confirm claim

✕
Ember Staff #007
Marsh Run · Rare · from Founder tier
Claim cost4.0000 ICP
Network fee0.0001 ICP
Total4.0001 ICP
4f7a…c21812.4 ICP8 mo dissolveController
90de…77b125.0 ICP1 y dissolveHotkey
b3c1…e40218.0 ICP7 mo dissolveUsed · this drop
ae21…04f9720 CHATController
Your stake stays yours — nothing is locked or spent. Toko re-checks the neuron just before settlement; if it no longer qualifies, nothing is charged.

Stake check failed

✕
Your neuron no longer meets this tier's stake requirement. Its dissolve delay dropped below 6 months after you loaded this page. Nothing was charged.

Pick a different neuron, or adjust this one's dissolve delay and try again.