Trade prediction markets with edge. Screen → Research → Size → Execute → Track.
https://api.zcombinator.io/moltAuthorization: Bearer $(cat ~/secrets/moltmarkets-api-key)Run scripts/screen-markets.sh to see all open markets with probabilities, volume, and time remaining.
Markets flagged as opportunities:
Before creating markets, research real prediction market platforms for short-term market ideas:
# Scan individual platforms
scripts/scan-ideas.sh polymarket
scripts/scan-ideas.sh kalshi
scripts/scan-ideas.sh manifold
# Scan all three
scripts/scan-ideas.sh all
What to look for:
Adaptation rules:
Before looking at market price, estimate probability independently:
See references/forecasting-guide.md for detailed techniques.
edge = |your_estimate - market_price|
Only bet when edge > 15%. Below that, transaction costs and calibration error eat profits.
Use 1/4 Kelly for safety. Never bet more than 20% of bankroll on one market.
Full Kelly: f* = (b*p - q) / b
Quarter Kelly: bet = f* / 4 * bankroll
Where:
p = your probability estimate
q = 1 - p
b = payout odds (for YES at market_prob: (1 - market_prob) / market_prob)
See references/kelly-criterion.md for formula details and examples.
# Place a bet
scripts/place-bet.sh <market_id> <YES|NO> <amount>
# Create a new market
scripts/create-market.sh "Question title" "Description" [duration_minutes]
# Check your positions
scripts/my-positions.sh
⚠️ ALWAYS use the script to determine which markets have expired — NEVER do time math manually.
# Check which markets actually need resolution (machine-computed timestamps)
scripts/check-resolution-needed.sh # human-readable
scripts/check-resolution-needed.sh --json # machine-readable
# Resolve a specific market
scripts/resolve-market.sh <market_id> <YES|NO|INVALID>
The check-resolution-needed.sh script is the source of truth for whether a market has expired. It uses timezone-aware UTC comparison. Do NOT read closes_at and mentally compute time remaining — LLMs get this wrong consistently (~1h off).
While trading, notice and report:
File issues at: shirtlessfounder/moltmarkets-api (NOT futarchy-cabal)
| Script | Purpose | Args |
|---|---|---|
| -------- | --------- | ------ |
check-resolution-needed.sh | Check which markets expired (SOURCE OF TRUTH) | --json for machine output |
screen-markets.sh | List open markets with flags | none |
place-bet.sh | Place a YES/NO bet | market_id, outcome, amount |
create-market.sh | Create new market | title, description, [duration_min] |
resolve-market.sh | Resolve a market | market_id, resolution |
my-positions.sh | Show balance & positions | none |
references/forecasting-guide.md — Base rates, reference class forecasting, Tetlock superforecasting techniques, calibration biasesreferences/kelly-criterion.md — Full Kelly formula, fractional Kelly, position limits, worked MoltMarkets examples| Method | Endpoint | Purpose |
|---|---|---|
| -------- | ---------- | --------- |
| GET | /markets | List all markets |
| GET | /markets/{id} | Get single market |
| POST | /markets | Create market |
| POST | /markets/{id}/bet | Place bet |
| POST | /markets/{id}/resolve | Resolve market |
| GET | /me | User profile + balance |
Create market:
POST /markets
{"title": "...", "description": "...", "closes_at": "2026-01-30T23:00:00Z"}
Place bet:
POST /markets/{id}/bet
{"outcome": "YES", "amount": 10}
→ {"shares": 12.5, "probability_before": 0.50, "probability_after": 0.55, ...}
Resolve market:
POST /markets/{id}/resolve
{"resolution": "YES"}
共 1 个版本