kalshi-weather-trader — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited kalshi-weather-trader (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Trade temperature markets on Kalshi using NOAA forecast data, via DFlow on Solana.
🚨 Framework, not a production trading system. Read DISCLAIMER.md before connecting to a wallet with real funds.
This is a template. The default signal is NOAA temperature forecasts — remix it with other weather APIs, different forecast models, or additional market types (precipitation, wind, etc.). The skill handles all the plumbing (market discovery, NOAA parsing, trade execution, safeguards). Your agent provides the alpha.
Powered by DFlow. Kalshi trades execute via DFlow's Solana-based prediction market infrastructure. KYC verification through Proof is required for buys.
When user asks to install or configure this skill:
pip install simmer-sdkSIMMER_API_KEYSOLANA_PRIVATE_KEYcurl "https://api.simmer.markets/api/proof/status?wallet=YOUR_SOLANA_ADDRESS"| Setting | Environment Variable | Default | Description |
|---|---|---|---|
| Entry threshold | SIMMER_WEATHER_ENTRY_THRESHOLD | 0.15 | Upper bound — buy when price is below this |
| Min entry price | SIMMER_WEATHER_MIN_ENTRY_PRICE | 0 | Lower bound — skip lottery tickets below this (0 = off), e.g. 0.15 to skip sub-15¢ tickets. Must be below the entry threshold. |
| Min hours to resolve | SIMMER_WEATHER_MIN_HOURS_TO_RESOLVE | 2 | Skip entries if the market resolves in fewer than this many hours. Entry-only; exits keep a fixed 2h floor. |
| Exit threshold | SIMMER_WEATHER_EXIT_THRESHOLD | 0.45 | Sell when price above this. Raise this if you raise entry above 0.45, or the skill will self-exit. |
| Max position | SIMMER_WEATHER_MAX_POSITION_USD | 2.00 | Maximum USD per trade |
| Max trades/run | SIMMER_WEATHER_MAX_TRADES_PER_RUN | 5 | Maximum trades per scan cycle |
| Locations | SIMMER_WEATHER_LOCATIONS | NYC | Comma-separated cities (NYC, Chicago, Seattle, Atlanta, Dallas, Miami) |
| Binary only | SIMMER_WEATHER_BINARY_ONLY | false | Skip range-bucket events, only trade binary yes/no markets |
| Smart sizing % | SIMMER_WEATHER_SIZING_PCT | 0.05 | % of balance per trade |
| Slippage max | SIMMER_WEATHER_SLIPPAGE_MAX | 0.15 | Skip trades with slippage above this (0.15 = 15%) |
| Min liquidity | SIMMER_WEATHER_MIN_LIQUIDITY | 0 | Skip markets with liquidity below this USD amount (0 = disabled) |
Supported locations: NYC, Chicago, Seattle, Atlanta, Dallas, Miami
# Check account balance and positions
python scripts/status.py
# Detailed position list
python scripts/status.py --positionsAPI Reference:
https://api.simmer.marketsAuthorization: Bearer $SIMMER_API_KEYGET /api/sdk/portfolioGET /api/sdk/positions# Dry run (default — shows opportunities, no trades)
python weather_trader.py
# Execute real trades
python weather_trader.py --live
# With smart position sizing (uses portfolio balance)
python weather_trader.py --live --smart-sizing
# Check positions only
python weather_trader.py --positions
# View config
python weather_trader.py --config
# Quiet mode — only output on trades/errors (ideal for high-frequency runs)
python weather_trader.py --live --smart-sizing --quietEach cycle the script:
sdk:kalshi-weather for trackingBefore trading, the skill checks:
SIMMER_WEATHER_SLIPPAGE_MAX)SIMMER_WEATHER_MIN_HOURS_TO_RESOLVE hours (default 2)SIMMER_WEATHER_MIN_ENTRY_PRICE (default 0 = off) is the other side of the entry-price check, not this list — --no-safeguards does not disable it.
Disable the flip-flop / slippage / time-decay / resolved checks with --no-safeguards (not recommended).
"Safeguard blocked: Severe flip-flop warning"
"Slippage too high"
"Resolves in Xh - too soon"
SIMMER_WEATHER_MIN_HOURS_TO_RESOLVE (default 2h). Raise the env to skip resolve-day entries."Price $X.XX below min entry"
SIMMER_WEATHER_MIN_ENTRY_PRICE. Lottery-ticket floor; default is off (0)."No weather markets found"
POST /api/sdk/markets/import/kalshi"KYC verification required"
"SOLANA_PRIVATE_KEY not set"
export SOLANA_PRIVATE_KEY=<your-base58-secret-key>"Insufficient SOL for transaction fees"
"API key invalid"
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.