How it works

A week-ahead price, set in sealed rounds

One round as work first, then five steps from a sealed order to a payout, then every limit. Figures in the drawings use the live parameters; worked examples are computed by the Weir engine on this page.

One round, as work

Example orders · cleared by the Weir engine

Ten sealed bids, five from buyers and five from sellers, go through one round. The rows of the rack are their prices; the counts the scanner reads at each row and the row it stops on are the engine’s. The steps below take each part in turn.

7/7One price for all: 3 buyers and 3 sellers filled at $2.74 /GPU-h. The $2.74 seller is filled 20 of 40 GPU-h. Returned unfilled: buyers at $2.73 and $2.68; sellers at $2.79 and $2.83.

Who is in the room

Two sides, one price
AGENT · BID ONLYTEAM + AGENTS · LONG Buyers hold LONG

People who need GPU time next week

AI teams, and the agents they run. LONG pays out more the higher next week’s average GPU-hour price, up to the band, so a rise in what compute costs is met by the hedge.

An agent bids with a key that can commit and reveal, and can never withdraw.

GPU OWNER · SHORT Sellers hold SHORT

People who own the GPUs

Neoclouds, labs with spare racks, data centres. SHORT pays out more the lower next week’s average price, down to the floor, so a fall in what their hours earn is met by the hedge.

Both sides lock their whole worst case when the position opens. Nobody owes more later, so nothing is liquidated.

1. The series clock

A series is one delivery window of 1 h. Its auctions open 65 m before delivery starts and run as back-to-back rounds of 3 m commit and 2 m reveal. Auctions close 5 m before delivery starts, so the price is set before the first hour is used, and only one series is in auction at a time. Phases come from the clock alone; nobody starts or stops a round.

The series settles on the average of the index prints inside its delivery window, once the last bucket’s report window (1 m) has closed.

H100 hourly (demo) market parameters, read from the contract when this page was published.

5/5After 1 m for late reports, the series settles on that average.

The series in auction when this page was published (Fri 13 Nov, 08:08 UTC). Series 32: auctions Fri 13 Nov, 07:55 UTC to Fri 13 Nov, 08:55 UTC · delivery Fri 13 Nov, 09:00 UTC to Fri 13 Nov, 10:00 UTC · settles from Fri 13 Nov, 10:01 UTC

2. Commit and reveal

During the commit phase an order is only a hash and a lock. The lock is dollars moved from your free balance; at least $1.00 (min_lock). Because both sides lock dollars, a commit shows neither side, size nor price, only an upper bound on what the order can cost.

During the reveal phase you send the order and the salt. The contract hashes them again and compares. A commit not revealed in time forfeits 1% of its lock; the rest comes back. Forfeits and the fee of $0.10 every commit pays are burned when the round clears: they belong to nobody, so no one gains when someone else fails to reveal, and taking a slot in a round always costs something.

An account can set a guard: an order priced further than the guard from the reference is void at reveal, and its lock comes back. The commit records the guard and the reference when it is made, so whether an order is void is settled at commit; changing the guard afterwards cannot back out of a bid. An account can also cap what its commits lock in one round (max_round_lock).

5/5The contract hashes them again. The same hash: the order counts.

Fields
version, series, round, account, side (L or S), size in GPU-hours, LONG price in micro-USD, salt (32 to 64 hex)
Lock
At least $1.00 (min_lock), and enough to cover the order: size x price for LONG, size x (band - price) for SHORT.
Check yours
The view commit_hash returns the same hash for the same fields. See Agents.

Save your salt. Without it you cannot reveal, and 1% of the lock is forfeit.

3. Clearing

After the reveal phase anyone may call clear. The contract stacks LONG orders from the highest price down and SHORT orders from the lowest up, and takes the price that trades the most. Ties go to the smallest imbalance, then to the middle of what is left, rounded down to the tick.

Every filled LONG pays that one price per GPU-hour, and every filled SHORT pays the band minus it. A LONG and a SHORT unit together paid exactly the band, so each new pair is fully backed.

In this worked example (band $1.000 /GPU-h): 2 LONG orders for 20 GPU-h and 1 SHORT orders for 15 GPU-h. It clears at a LONG price of $0.400 /GPU-h, for 15 GPU-h. B is filled in part, 5 of 10.

5/5A fills 10, B fills 5 of 10, C fills 15. Everyone pays the one price.

4. Settlement

After delivery, settle takes the average of the series’ prints as the fixing. A LONG unit pays the fixing minus the floor, between zero and the band. A SHORT unit pays the band minus that. Then anyone may call redeem for any holder.

How a print is decided. Each of 3 reporters may report a bucket within its window, 5 m plus 1 m of grace. The bucket is decided when every reporter has reported, or when the window closes. The print is the median of the reports. With fewer than 2 reports (quorum) there is no print; with an even number, the two middle reports must agree within 2% (max_spread_bps) or there is no print. A bucket without a print stays without one, and the index chart marks it. Nothing compares a print with earlier ones.

If fewer than 9 prints (min_prints) arrived, the series waits. After 30 m (void_after_secs) it is void: cancelled at the centre of the band. Every LONG and every SHORT is paid half the band, whatever was traded and whatever prints exist, so no trade and no partial set of prints can move the payout. That is close to a refund when the auctions cleared near the centre of the band; whoever paid more than half the band for a side gets less back, and whoever paid less gets more.

5/5A SHORT unit pays the rest of the band: $0.250. Together, exactly the band.

Worked example: a buyer hedges 1,344 GPU-h with LONG.
Floor, band$2.000 /GPU-h, $0.800 /GPU-h
LONG price paid at the auction, p$0.300 /GPU-h
Locked at the open, 1,344 x p$403.20
Fixing: the average of the 7 prints$2.550 /GPU-h
LONG payout, fixing - floor$0.550 /GPU-h
SHORT payout, band - LONG payout$0.250 /GPU-h
Buyer pays for compute$2.550 /GPU-h
Net: compute - payout + p = floor + p$2.300 /GPU-h
Paid out for 1,344 units$739.20

Payoff and hedge size

Per GPU-hour, at settlement · the band of the open series when this page was published (Fri 13 Nov, 08:08 UTC)
$2.000$2.500$3.000$3.500$3.000Fixing, USD per GPU-hourBand
$2.000$2.500$3.000$3.500$2.500$3.000$3.500Fixing, USD per GPU-hourBand
Fixing (week’s average)
$3.077 /GPU-h inside the band
Unhedged cost
$3.077 /GPU-h
LONG payout
$0.644 /GPU-h
Hedged cost
$2.841 /GPU-h
Difference
-$0.236 /GPU-h (the hedge saved you)

Drag the handle, or focus it and use the arrow keys: one tick each, ten with Shift.

Your side
8 GPUs for a week is 1,344.
Series 32, at the last clearing price, $0.408 /GPU-h (round 1)
Units of LONG1,344 GPU-h
Dollars locked$548.35
Most you can lose$548.35
Your price inside the band$2.841 /GPU-h
At this fixing, for all hours$3,818.30

The band runs from $2.433 /GPU-h to $3.291 /GPU-h. Beyond it you pay or receive the market price again, shifted by the fixed amount.

5. Funding from another chain quotes only

Weir holds USDC on NEAR. USDC on Base, Arbitrum, Ethereum or Solana can be moved to a NEAR account through NEAR Intents, where solvers quote a price and deliver the token. From there one ft_transfer_call deposits it into Weir, crediting the account named in its message.

Status: quotes only. No cross-chain transfer into Weir is on record yet, so this path is described, not shown working.

4/4One ft_transfer_call deposits it into your Weir free balance.

A dry quote: what a solver would deliver on NEAR today. Nothing is signed or sent.

Limits

One fact per line, with the parameter that sets it. H100 hourly (demo) market parameters, read from the contract when this page was published.

  • NEAR testnet only. No real money is at stake.network
  • The index is what 2 of 3 named reporters say it is. All three are run by one operator today, who can set any price; a majority acting together can set the fixing; with one absent either of the others can leave a bucket without a print, or make a series void (half the band to each side), which a reporter who also trades can profit from.quorum
  • The band caps the hedge: 15% of the anchor each way. Outside it you pay the market again.band_bps
  • A commit not revealed forfeits 1% of its lock.forfeit_bps
  • A series settles no earlier than 1 m after its delivery ends.report_grace_secs
  • Prices move in steps of $0.001 /GPU-h.tick
  • A series can only open on a print at most 15 m old.max_anchor_age_secs
  • When an even number of reporters decide a print, the two middle reports must be within 2% of each other, or the bucket has no print.max_spread_bps
  • Every commit pays a fee of $0.10, burned when its round clears.commit_fee
  • A round holds at most 64 commits; when full, a larger lock evicts the smallest.max_commits
  • One order is at most 10,000 GPU-h.max_order_size
  • A commit locks at least $1.00.min_lock
  • A normal settlement needs 9 prints; without them, after 30 m the series is void: cancelled at the centre of the band, half the band to each side.min_prints, void_after_secs
  • A function-call key cannot set a guard, withdraw or move positions: those need 1 yoctoNEAR.set_guard, withdraw

Trust

  • The index is what the reporters say it is, and a majority of them acting together can set the fixing. Today all three are run by one operator, who can set any price, and nothing on chain checks a report against its published data. With all of them present, a print is the median, which a minority cannot move. With one of three absent, either of the other two can leave a bucket without a print; doing that selectively shifts the fixing by the difference between the average of all buckets and the average of the ones it lets through, as long as 9 remain. Doing it more often makes the series void, which pays both sides half the band. A reporter who also trades can profit from that when auction prices have moved away from the centre of the band, by holding the side that cost less than half and then causing the void. Reporters cannot take funds. The remedy is more reporters run by independent parties, which this deployment does not have. Every report carries the hash of its data, so anyone can recompute it on Proof.reporters
  • A late revealer has seen the earlier reveals and can still choose not to reveal. That costs 1% of its lock and the $0.10 fee, and it can change who else is filled.last look
  • A determined bidder can fill all 64 slots of a round; at $0.10 a commit that costs $6.40 a round. A price on blocking, not a ban.max_commits, commit_fee
  • The contract trusts the USDC token contract named in its parameters: weir-usdc-w1.testnet.usdc
  • There is no owner, pause, fee switch or upgrade method. Once the contract account has no keys, its code cannot change. Proof reads the key count live.no admin
  • An agent with a function-call key limited to commit, reveal, clear, mint, merge, settle and redeem trades only with dollars already deposited for it. Its guard and round lock limit are off until the account sets them: set them before handing over the key.agents
  • The parameters are whatever the deployer chose; the contract refuses only what cannot work, not what is unwise. Read them on Proof before trusting a deployment.get_params