Search projects, hackathons, sponsors and tech

    ← All projects

    GaussVM

    Gaussian prediction-market liquidity, powered by 1inch Aqua and SwapVM.

    Demo

    About

    GaussVM brings Gaussian prediction-market liquidity to 1inch Aqua, using SwapVM to turn a research pricing curve into executable onchain trades. It builds on the pm-AMM research by Ciamac Moallemi and Dan Robinson and connects it to a working application where users can trade YES/NO outcome tokens, create liquidity positions, and inspect transaction receipts. Aqua’s approach to liquidity is central to the project. Makers authorize trading strategies while keeping their outcome tokens in their wallets until a trade executes. A single wallet can support both GaussVM’s static and experimental time-scaled strategies without making separate token deposits for each position. Actual execution still depends on the wallet’s balances and allowances. SwapVM provides the other essential piece: programmable execution. GaussVM implements Gaussian pricing as a custom SwapVM instruction, while the surrounding engine handles order validation and settlement through Aqua. Together, these 1inch technologies provide a practical foundation for taking a specialized market-making idea from a paper to a usable trading experience. The live Sepolia demo asks a simple, slightly self-referential question: “Will this project win ETHOnline 2026?” Users can obtain free test tokens, swap between YES and NO, and follow confirmed transactions on an explorer. Liquidity controls support creating and removing positions, while the market contracts handle merging complete sets and redeeming outcomes after resolution. GaussVM demonstrates how Aqua and SwapVM can support a pricing model tailored to binary outcomes. It is currently an unaudited testnet prototype with worthless test assets and manual resolution. Its time-scaled mode is an experiment, rather than a claim to reproduce the research paper’s complete economic result.

    How it's made

    The project is built around two complementary pieces of 1inch infrastructure: Aqua for liquidity accounting and token transfers, and SwapVM for programmable trade execution. GaussVM extends the official SwapVM base with a custom Gaussian instruction, opcode 0x80, and uses an unmodified deployment of official Aqua source. When a maker creates a position, the application encodes the market, liquidity scale, timestamps, and strategy mode into a SwapVM order and authorizes it through Aqua. During a swap, the custom instruction reads that strategy’s current allocations and calculates how many outcome tokens the trader receives. SwapVM then applies its execution checks and settles the transfer through Aqua. This division lets GaussVM focus its custom logic on prediction-market pricing while using 1inch’s infrastructure for the surrounding execution flow. The mathematical implementation uses signed 18-decimal fixed-point arithmetic, bounded Gaussian cumulative-distribution and density calculations, and a bisection solver with conservative output rounding. One useful optimization computes the density once and shares it between the calculations that need it. Regression tests compare the optimized and earlier implementations, including returned values, rejected inputs, and complete swaps. Separate Solidity contracts provide test collateral, ERC-20 YES/NO tokens, collateral-backed splitting and merging, manual resolution, and timeout cancellation. Positions support either a static liquidity scale or an experimental scale based on the square root of the remaining market lifetime. The frontend uses React, TypeScript, Vite, and viem. It reads balances and allocations, obtains quotes through contract simulation, requests limited token approvals, and links confirmed transactions to Sepolia receipts. Submitted hashes are preserved when confirmation is unavailable so users can recheck the same transaction. The public interface is hosted on GitHub Pages without a hosted backend or database. The repository includes numerical tests, contract integration tests, Playwright browser tests, and a standalone Hardhat lifecycle demo. That demo exercises two Aqua strategies sharing one maker wallet, executes trades, checks actual balance changes and Aqua events, removes the positions, and completes merging and redemption. A separate fork demo runs the same lifecycle against 1inch’s canonical Aqua deployment, with all writes confined to a local Ethereum fork.