Seasons and settlement
A season is decided by exactly two index points: the one posted for its first hour and the one posted for the hour it ends. Everything in between moves the map, not the result.
The season clock
| Season | Starts | Planting closes | Harvest |
|---|---|---|---|
| Daily | 00:00 UTC | 18:00 UTC | 00:00 UTC next day |
| 7-day | Monday 00:00 UTC | Saturday 06:00 UTC | Monday 00:00 UTC |
Seasons are numbered. The daily number is floor(t / 86400); the 7-day number is floor((t - 345600) / 604800), because 5 January 1970 was a Monday.
Start and end points
The start price is the point for the season's first UTC hour and the end price is the point for the hour it ends (00:00 UTC). Both come from GpuIndex.priceAt(crop, hour), and points can never be overwritten once posted.
Outcomes
- End above start: LONG plots win the SHORT pot, pro-rata, minus the harvest fee.
- End below start: SHORT plots win the LONG pot.
- End equal to start, or one side of the pot empty: every plot is refunded in full with no fee.
settle(crop, kind, season) is permissionless once the season is over. harvest settles first when needed, so one call is enough.
Missing points
If the start or end point is missing when the season ends, settlement waits up to 6 hours for a late post. After that the season settles as a refund, and every plot gets its USDG back.