Skip to content

The standing challenge · Monad mainnet

Snipe us.

Anyone who makes money from being faster than Unison's price can take this pot. Our own sniper, open source, trades Unison and a market kept on the old rule side by side: the same signal, the same size, the same vault. The definition is in the contract, and the contract pays.

Unison

Each auction prices at the first price Chainlink observes after its orders are in.

Pot
18 AUSD
Our sniper's fills
173
Its edge, after fees
-21.49 bp a trade

The old rule (control)

Each auction prices at the Chainlink round already on chain when it clears.

Pot
Paid out
Our sniper's fills
30
Its edge, after fees
+14.35 bp a trade

Each edge is every fill marked to the first Chainlink observation at least 60 s after its order. Scored 28 October 2026 at 01:45 UTC.

Every challenger

Every account opened in either challenge, scored as the contract would judge its claim: each fill marked to the first Chainlink observation at least 60 s after its order. Indexed from Monad mainnet by Envio HyperIndex. The indexer.

AccountEdge after feesCounted fills
0xac888e…a054f6Old rule · our sniper+14.35 bp30 of 30
0xb1964f…b611b6Unison · our sniper-21.49 bp173 of 30

The definition

Frozen in the contract when it was deployed. Directional luck averages out over this many fills; knowing the next price first does not.

Window
6 October 2026 at 13:48 UTC → 27 October 2026 at 23:59 UTC
Markout
Each fill, at the first Chainlink MON/USD observation at least 60 s after its order, proven first from the feed's history
Wins
An average edge after fees above 2 bp, over at least 30 fills
Every fill counts
Trades go through your challenge account, which records each one; a claim can't leave the losing ones out
Who can't enter
The venue's own keys, the owner's passkey account and wallet
If nobody wins
Three days after the window, the pot goes back to its sponsor: the rule held

Take it

Open an account in the challenge, fund it, trade through it, and claim when your fills meet the definition. The Unison challenge is 0xDcD3E8…3B90d1; the control is 0x5Ce9D9…9976e9.

take-the-pot.ts
import { latencyChallengeAbi, challengeAccountAbi, scoreAccount } from "@unison/sdk";

// 1. an account of your own, inside the challenge
await wallet.writeContract({ address: CHALLENGE, abi: latencyChallengeAbi, functionName: "open" });
const account = await client.readContract({ address: CHALLENGE, abi: latencyChallengeAbi,
  functionName: "accountOf", args: [you] });

// 2. fund it (approve the account first), then trade: one auction order at a time
await wallet.writeContract({ address: account, abi: challengeAccountAbi,
  functionName: "deposit", args: [AUSD, 10_000_000n] });            // 10 AUSD
await wallet.writeContract({ address: account, abi: challengeAccountAbi,
  functionName: "order", args: [0, tick, 10n ** 19n] });            // buy 10 WMON
// …after its auction runs, put the fill on the record
await wallet.writeContract({ address: account, abi: challengeAccountAbi, functionName: "settle" });

// 3. when your fills beat the definition, take the pot
const s = await scoreAccount(client, CHALLENGE, account);
if (s.qualifies) await wallet.writeContract({ address: CHALLENGE, abi: latencyChallengeAbi,
  functionName: "claim", args: [account, s.baseRounds, s.quoteRounds] });

An AI agent can do the same from MetaMask's Agent Wallet CLI, signing with its own wallet: mm unison challenge open, then fund, order --settle, score and claim. The plugin.

Our sniper

It watches MON on Coinbase and Kraken. When the price has moved more than 40 bp from Chainlink's last landed round (the vaults' spread and fee, and a margin), it trades toward the move on both markets at once, at most once every 30 minutes (each trade pays the keeper for a clear on each market). It counts as the team's in every tally of outside demand, and it may claim, so the definition is shown to pay where there is an edge. Once a challenge has paid out, it stops trading that market. Its address is 0xcEc801…d81276. Its source.

Why the old rule pays

A Chainlink observation takes about 13 s to land on chain, and anyone watching the market sees the move before it lands. Measured on MON/USD, 6.1% of observations moved more than the WMON vault's 23 bp of spread and fee: 5.3 chances an hour to trade against a price that was already old. Unison's auctions price at the observation made after their orders, so those chances are gone by construction. The measurements; the record.

Our sniper, against last week

Before funding either pot, we replayed the bot over a week of real prices: 208,414 Coinbase trades against 15,992 Chainlink rounds. At its settings (40 bp, at most once every 30 minutes) it earned +17.8 bp a trade on the old rule, 72% of trades winning: enough to claim the control's pot in about 33 hours. On the causal rule the same trades lost 23.0 bp each, and its best run of 30 fills or more was −15.8 bp; the pot pays only above +2 bp. The replay, at every setting.