stacking-lottery
Stacking lottery pots on stackspot.app — pool STX into pots that get stacked via PoX, VRF picks a random winner for sBTC rewards, and all participants get their STX back. Mainnet-only.
What this skill does
# Stacking Lottery Skill
Provides stacking lottery pot operations on [stackspot.app](https://stackspot.app):
- **Pot Discovery** — List all known pot contracts with their current value and lock status.
- **Pot State** — Query full on-chain state for a pot: value, participant count, lock status, config, pool config, and details.
- **Join Pot** — Contribute STX to a pot before it fills and starts stacking.
- **Start Pot** — Trigger a full pot to begin stacking through the platform contract.
- **Claim Rewards** — Claim sBTC rewards if your address was selected as the VRF winner.
- **Cancel Pot** — Cancel a pot before it starts and recover contributed STX.
**How it works:** Participants join pots by contributing STX. When a pot reaches its maximum participant count, the platform contract triggers stacking via Proof of Transfer (PoX) for one full cycle. At unlock, a VRF-selected winner receives the stacking yield in sBTC. All participants (winner included) receive their original STX back.
All stacking lottery operations are **mainnet-only**. Write operations (join-pot, start-pot, claim-rewards, cancel-pot) require an unlocked wallet (use `bun run wallet/wallet.ts unlock` first).
## Usage
```
bun run stacking-lottery/stacking-lottery.ts <subcommand> [options]
```
## Subcommands
### list-pots
List all known stacking lottery pot contracts with their current on-chain value and lock status.
```
bun run stacking-lottery/stacking-lottery.ts list-pots
```
Output:
```json
{
"network": "mainnet",
"potCount": 3,
"pots": [
{
"name": "Genesis",
"contract": "SPT4SQP5RC1BFAJEQKBHZMXQ8NQ7G118F335BD85.Genesis",
"maxParticipants": 2,
"minAmountStx": 20,
"currentValueUstx": "40000000",
"isLocked": false
}
]
}
```
### get-pot-state
Get the full on-chain state for a specific pot. Queries all read-only functions: value, participant count, lock status, configuration, pool config, and details.
```
bun run stacking-lottery/stacking-lottery.ts get-pot-state --contract-name <name>
```
Options:
- `--contract-name` (required) — Pot contract name or full identifier (e.g., `SPT4SQP5RC1BFAJEQKBHZMXQ8NQ7G118F335BD85.STXLFG` or `STXLFG`)
### join-pot
Contribute STX to a pot. The amount must be at least the pot's minimum. STX is locked in the contract until the pot completes its stacking cycle and all participants can withdraw. Requires an unlocked wallet.
```
bun run stacking-lottery/stacking-lottery.ts join-pot --contract-name <name> --amount <microStx>
```
Options:
- `--contract-name` (required) — Pot contract name (e.g., `STXLFG`)
- `--amount` (required) — Amount to contribute in micro-STX (1 STX = 1,000,000 micro-STX)
### start-pot
Trigger a full pot to begin stacking. Calls the platform contract which starts the PoX stacking cycle for the pot. The pot must have reached its maximum participant count. Requires an unlocked wallet.
```
bun run stacking-lottery/stacking-lottery.ts start-pot --contract-name <name>
```
Options:
- `--contract-name` (required) — Pot contract name to start stacking
### claim-rewards
Claim sBTC rewards if the active wallet was selected as the VRF winner for a completed pot. Non-winners receive no sBTC but do get their STX back via the same mechanism. Requires an unlocked wallet.
```
bun run stacking-lottery/stacking-lottery.ts claim-rewards --contract-name <name>
```
Options:
- `--contract-name` (required) — Pot contract name to claim rewards from
### cancel-pot
Cancel a pot before it starts stacking. Allows participants to recover their contributed STX. The pot must not yet be locked (stacking must not have started). Requires an unlocked wallet.
```
bun run stacking-lottery/stacking-lottery.ts cancel-pot --contract-name <name>
```
Options:
- `--contract-name` (required) — Pot contract name to cancel
## Notes
- All stacking lottery operations are **mainnet-only**. Calls on testnet will return an error.
- Write operations require an unlocked wallet (use `bun run wallet/wallet.ts unlock` first).
- **STX lock-up:** When you join a pot, your STX is locked for one full PoX stacking cycle (~2 weeks). Do not join a pot with STX you need access to in the short term.
- **VRF winner selection:** One participant is chosen randomly at unlock. The winner receives all stacking yield in sBTC. All participants (including the winner) receive their original STX back.
- **Timing windows:** Pots can only be started during the prepare phase of a PoX cycle. If start-pot fails, check the current PoX cycle phase using `bun run stacking/stacking.ts get-pox-info`.
- **Contract architecture:** Individual pot contracts are deployed by `SPT4SQP5RC1BFAJEQKBHZMXQ8NQ7G118F335BD85`. The platform contract `SP7FSE31MWSJJFTQBEQ1TT6TF3G4J6GDKE81SWD9.stackspots` orchestrates starting pots and distributing rewards.
- **Known pots:** Genesis (max 2 participants, min 20 STX), BuildOnBitcoin (max 10, min 100 STX), STXLFG (max 100, min 21 STX).
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.