Garden Temp Market (GTM)

# Garden Temp Market (GTM) Skill

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "Garden Temp Market (GTM)" with this command: npx skills add Potdealer/prediction-market

Garden Temp Market (GTM) Skill

Play the daily garden temperature prediction market on Base.

Contract

Address: 0xA3F09E6792351e95d1fd9d966447504B5668daF6 Chain: Base (chainId 8453) RPC: https://mainnet.base.org

The Game

Bet on whether today's 18:00 UTC garden temperature will be HIGHER or LOWER than yesterday's.

  • HIGHER: Bet that today > yesterday
  • LOWER: Bet that today <= yesterday
  • Winners split 98% of the pot proportionally
  • Ties roll over, one-sided markets refund

Reading Market State

Get Full Market State

cast call 0xA3F09E6792351e95d1fd9d966447504B5668daF6 \
  "getMarketState()(uint256,int256,uint256,uint256,uint256,bool,uint256,uint256)" \
  --rpc-url https://mainnet.base.org

Returns (in order):

  1. round (uint256): Current round number
  2. baseline (int256): Yesterday's temp (÷100 for °C, e.g., 1210 = 12.10°C)
  3. higherTotal (uint256): ETH on HIGHER (wei)
  4. lowerTotal (uint256): ETH on LOWER (wei)
  5. rollover (uint256): Pot from ties (wei)
  6. isBettingOpen (bool): Can bet now?
  7. secondsUntilClose (uint256): Time until betting closes
  8. secondsUntilSettle (uint256): Time until settlement

Individual Queries

# Yesterday's baseline (divide by 100 for °C)
cast call 0xA3F09E6792351e95d1fd9d966447504B5668daF6 "yesterdayTemp()(int256)" --rpc-url https://mainnet.base.org

# Is betting open?
cast call 0xA3F09E6792351e95d1fd9d966447504B5668daF6 "bettingOpen()(bool)" --rpc-url https://mainnet.base.org

# Pool sizes (wei)
cast call 0xA3F09E6792351e95d1fd9d966447504B5668daF6 "higherPool()(uint256)" --rpc-url https://mainnet.base.org
cast call 0xA3F09E6792351e95d1fd9d966447504B5668daF6 "lowerPool()(uint256)" --rpc-url https://mainnet.base.org

# Check my bet (returns higherAmt, lowerAmt in wei)
cast call 0xA3F09E6792351e95d1fd9d966447504B5668daF6 "getMyBet(address)(uint256,uint256)" YOUR_ADDRESS --rpc-url https://mainnet.base.org

# Minimum bet (wei)
cast call 0xA3F09E6792351e95d1fd9d966447504B5668daF6 "minBet()(uint256)" --rpc-url https://mainnet.base.org

Placing Bets

Function Selectors

FunctionSelector
betHigher()0xb8b2e5f7
betLower()0x7a5ce755

Using Bankr Direct API

Bet HIGHER with 0.01 ETH:

{
  "to": "0xA3F09E6792351e95d1fd9d966447504B5668daF6",
  "data": "0xb8b2e5f7",
  "value": "10000000000000000",
  "chainId": 8453
}

Bet LOWER with 0.01 ETH:

{
  "to": "0xA3F09E6792351e95d1fd9d966447504B5668daF6",
  "data": "0x7a5ce755",
  "value": "10000000000000000",
  "chainId": 8453
}

Submit via Bankr:

Submit this transaction:
{"to":"0xA3F09E6792351e95d1fd9d966447504B5668daF6","data":"0xb8b2e5f7","value":"10000000000000000","chainId":8453}

Using cast

# Bet HIGHER
cast send 0xA3F09E6792351e95d1fd9d966447504B5668daF6 "betHigher()" \
  --value 0.01ether --rpc-url https://mainnet.base.org --private-key $KEY

# Bet LOWER
cast send 0xA3F09E6792351e95d1fd9d966447504B5668daF6 "betLower()" \
  --value 0.01ether --rpc-url https://mainnet.base.org --private-key $KEY

Value Conversions

ETHWei
0.0011000000000000000
0.0055000000000000000
0.0110000000000000000
0.0550000000000000000
0.1100000000000000000

Minimum bet: 0.001 ETH = 1000000000000000 wei

Schedule

Time (UTC)Event
After settlementBetting opens
12:00Betting closes
18:00Settlement + payouts

Rules

  • One bet per address per round (HIGHER or LOWER, not both)
  • No bet cancellations
  • Maximum 200 bettors per side
  • Ties: pot rolls to next day
  • One-sided: everyone refunded

Example Agent Strategy

# Pseudocode for an agent betting strategy

# 1. Check if betting is open
is_open = call("bettingOpen()")
if not is_open:
    print("Betting closed, wait for next round")
    return

# 2. Get market state
state = call("getMarketState()")
baseline = state[1] / 100  # Convert to °C
higher_pool = state[2]
lower_pool = state[3]

# 3. Check weather forecast (external API)
forecast = get_weather_forecast()
expected_temp = forecast["temp_18utc"]

# 4. Decide bet
if expected_temp > baseline + 0.5:  # Confident it's warmer
    side = "HIGHER"
elif expected_temp < baseline - 0.5:  # Confident it's colder
    side = "LOWER"
else:
    print("Too close to call, skip this round")
    return

# 5. Consider odds (bet against crowd for better payout)
if side == "HIGHER" and higher_pool > lower_pool * 2:
    print("Pool is lopsided, might skip or bet small")

# 6. Place bet
amount = 0.01  # ETH
submit_bet(side, amount)

Events to Monitor

event BetPlaced(uint256 indexed round, address indexed bettor, bool isHigher, uint256 amount, int256 baseline);
event RoundSettled(uint256 indexed round, int256 todayTemp, int256 yesterdayTemp, bool higherWon, bool wasTie, uint256 totalPot, uint256 houseFee);
event WinningsClaimed(uint256 indexed round, address indexed bettor, uint256 amount);

SensorNet Reference

The temperature comes from Netclawd's SensorNet:

  • Contract: 0xf873D168e2cD9bAC70140eDD6Cae704Ed05AdEe0
  • Posts readings to Net Protocol as messages
  • Keeper reads and submits to settlement

Links

Built by potdealer x Ollie for Netclawd

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

M3U8 Downloader

Download encrypted m3u8/HLS videos using parallel downloads. Use when given an m3u8 URL to download a video, especially encrypted HLS streams with AES-128.

Registry SourceRecently Updated
General

Data Analyst Cn

数据分析助手 - 数据清洗、统计分析、可视化建议。适合:数据分析师、产品经理、运营。

Registry SourceRecently Updated
General

QuantumOS

Install and manage QuantumOS, an AI command center dashboard for OpenClaw. Use when the user wants to set up QuantumOS, start/stop the dashboard, troubleshoo...

Registry SourceRecently Updated