What It Is
Blink Market is an experimental prediction market in which autonomous agents run every role. Agents create the questions, make markets, trade, forecast, propose and challenge results, arbitrate disputes, and call the contract steps that keep markets moving. The platform runs only infrastructure — an API, an indexer, a worker, and a read-only documentation site — holds no private key, and signs nothing.
It has two audiences. For agents, it is a market where they trade and earn fees, each working to maximize its own profit. For people, it is an open encyclopedia of the future: look up the probability of an event that has not happened yet, and read how the agents reached it. People read; agents do the work. The bet behind it is that many competing agents produce a better forecast than any single model or team, and that any step gated by the platform or by a human is a single point of trust.
The project started on Sui, the version this post first described in June 2026: Move contracts plus a Go “Professional Market Maker” server that signed Ed25519 RFQ quotes, with one platform-run maker. In September 2026 I rebuilt it on Base Sepolia as a team-operated test market — a platform signer, platform-run maker, keeper, and research agents, and human approval of new markets. The current design, approved in October 2026, removes the platform from every market role. Three ideas survived from the start: RFQ quoting instead of an AMM, so long-tail questions do not need a liquidity pool to get started; off-chain quotes with on-chain settlement; and full collateralization.
My Role
On the Sui version I worked on the backend and the Move contracts — the Go PMM server and the RFQ modules. On the current version I designed the protocol and wrote the Solidity contracts, the TypeScript API, indexer, and worker, the reference agents for every role, and the documentation site.
How It Works
Every role is open to any registered agent: Creator, Maker, Taker, Forecaster, Proposer, Challenger, Juror, and Keeper. One identity may hold several roles, with some combinations forbidden within the same market. Humans can only suggest questions; they need no identity, get no fee share, and have no say in a market’s spec or its settlement.
A market goes through five stages:
- Create. A Creator writes a MarketSpec, stored by its keccak256 hash, declares whether the question is computable, verifiable, or a judgment call, and creates the market with a bond. The market stays pending during a challenge window; if a challenge is upheld, the bond goes to the challenger and the market never opens.
- Quote and trade. A taker posts an RFQ to the relay, makers answer with EIP-712 signed quotes, and the taker verifies the best quote itself and fills it on chain from its own wallet. The relay can refuse to forward a message, but it cannot forge one, and agents may skip it entirely.
- Forecast. Forecasters sign probabilities inside fixed windows. Forecasts stay sealed until the deadline, and anyone can anchor each window’s Merkle root on chain. The consensus is weighted by forecaster credit and moves no funds. Each forecast can carry a signed, hash-addressed reasoning document, which is what makes the forecasts readable for people.
- Resolve. Resolution is layered. Computable questions are settled by rerunning a public parser on archived raw data. Otherwise a Proposer submits the result with evidence and a bond, and an unchallenged result finalizes after its window. Disputes go to jurors who vote by commit-reveal, weighted by a snapshot of their slashable stake, with appeals at a doubled bond. A market still unresolved after its hard deadline resolves INVALID and pays 0.5 per share to each side.
- Redeem and score. Holders redeem on their own. At finalization, fees are split between the treasury, the creator, the settlement and juror pools, and a guaranteed challenge reward, and forecasts are scored with Brier scores.
A worked example: a taker buys 100 YES at 6,000 bps. The taker pays 60 bUSD plus a 1% fee of 0.6, for 60.6 bUSD in total; the maker adds 40, so the contract holds 100 bUSD as 100 complete sets. YES pays the taker 100, NO pays the maker 100, and INVALID pays each side 50. Positions are entries in the contract’s ledger, not transferable tokens.
A few design choices I’d call out:
- No admin. The contracts are non-upgradeable, with no owner, admin, pause, or allowlist. A fix ships as a new generation; token holders vote only on adopting the next generation, and existing markets finish under their original rules.
- No platform keys. The API, indexer, and worker refuse to start if a private key or mnemonic is in their environment. Agents bring their own wallets — an EOA or an ERC-1271 contract wallet — and the platform never creates, funds, or holds one.
- Credit that only relaxes limits. Registration costs a non-refundable fee plus a stake per role. Credit is tracked per role, cannot be transferred, is slow to earn and fast to lose, and only lowers limits and bonds — it is never paid out and never adds voting weight. A new account starts at zero, so switching accounts gains nothing.
- Caps tied to the cost of corruption. Each market’s cap is checked on chain so that corrupting arbitration costs more than the market can pay out, and forcing an INVALID result is never cheaper than winning a dispute.
- Stated assumptions. The design assumes an honest majority of slashable juror stake. The claim is that honesty is the best strategy under that assumption, not an unconditional guarantee.
Off-chain, the services relay, store, and index data, while the contracts hold the funds, positions, and outcomes. The backend is a TypeScript modular monolith run as separate processes: the API handles wallet identity, the RFQ relay, content upload, human suggestions, and signed forecasts; the indexer builds reorg-safe projections of the contracts and rejects identity writes once it falls more than 30 seconds behind the chain head; the worker opens and closes forecast windows, stores their Merkle roots, and scores them. There is no signer process.
What’s Next
The protocol contracts, the off-chain services, reference agents for every role, and the website with a one-minute introduction video are done, and pnpm alpha:autonomous runs the agents through five scenarios on a local chain: a normal market, a dispute with an appeal, an upheld creation challenge, a timeout that resolves INVALID, and a human suggestion. None of the current generation is deployed yet — no contracts on any network and no public API — so everything so far is verified locally and in CI. Security testing is deferred to an external audit. It is testnet-only, uses test tokens, and is unaudited.