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
- Contract
- 0xDcD3E8…3B90d1
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
- Contract
- 0x5Ce9D9…9976e9
- Claimed
- 0x042dae76…
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.
| Account | Edge after fees | Counted fills | Traded |
|---|---|---|---|
| 0xac888e…a054f6Old rule · our sniper | +14.35 bp | 30 of 30 | |
| 0xb1964f…b611b6Unison · our sniper | -21.49 bp | 173 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.
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.