{"id":42907315,"url":"https://github.com/swarooppatilx/walymarket","last_synced_at":"2026-01-30T16:33:22.909Z","repository":{"id":323228531,"uuid":"1092004738","full_name":"swarooppatilx/walymarket","owner":"swarooppatilx","description":"A decentralized prediction market where outcomes are settled by verifiable, on-chain truth using provable data from Walrus. ","archived":false,"fork":false,"pushed_at":"2025-11-22T17:15:46.000Z","size":1048,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-11-22T17:25:26.195Z","etag":null,"topics":["sui","walrus","web3"],"latest_commit_sha":null,"homepage":"https://walymarket.netlify.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/swarooppatilx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-07T21:01:19.000Z","updated_at":"2025-11-22T17:15:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/swarooppatilx/walymarket","commit_stats":null,"previous_names":["swarooppatilx/walymarket"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/swarooppatilx/walymarket","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swarooppatilx%2Fwalymarket","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swarooppatilx%2Fwalymarket/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swarooppatilx%2Fwalymarket/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swarooppatilx%2Fwalymarket/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/swarooppatilx","download_url":"https://codeload.github.com/swarooppatilx/walymarket/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swarooppatilx%2Fwalymarket/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28915677,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T12:13:43.263Z","status":"ssl_error","status_checked_at":"2026-01-30T12:13:22.389Z","response_time":66,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["sui","walrus","web3"],"created_at":"2026-01-30T16:33:22.109Z","updated_at":"2026-01-30T16:33:22.904Z","avatar_url":"https://github.com/swarooppatilx.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Walymarket\n![Walymarket Screenshot](/assets/screenshot.png)\n\n## Overview\n\nWalymarket is a decentralized prediction market that enforces verifiable, on‑chain resolution of outcomes. By integrating verifiable data provenance from Walrus, market results are resolved against immutable, auditable sources rather than centralized arbiters. This implementation was developed for the Provably Authentic (Truth Engine + Trust Oracle) track of the Road to Haulout: Walrus Buildathon.\n\n## Technical Architecture\n\nThe codebase is organized as a `pnpm` monorepo separating on‑chain logic and the client.\n\n### Tech stack\n\n- Languages: Move (on‑chain), TypeScript (frontend)\n- Frontend: React, Vite\n- Package manager / monorepo: pnpm\n- Blockchain / runtime: Sui, Suibase (localnet tooling)\n- Wallet \u0026 SDKs: @mysten/dapp-kit, @suiware/kit\n- State \u0026 data fetching: React Query\n- On‑chain tooling: Move modules, Sui CLI / localnet\n- Oracle / verification: Walrus proofs, WalrusOracleAdapter.move\n\n### On‑chain (packages/backend)\n\nThe backend is implemented as modular Move modules. Core responsibilities and modules:\n\n- `MarketFactory.move`  \n    Entry point for market creation. Provides a `create_permissionless` function that instantiates a shared `Market` object and mints an `AdminCap` at deployment for permissioned operations.\n\n- `Market.move`  \n    Encapsulates a single market as a shared object with:\n    - Metadata: `title`, `description`, `image_url`\n    - LMSR state: `q_yes`, `q_no`, `b`\n    - Resolution state: `resolved`, `resolution`\n    - Embedded `CollateralVault` for collateral management\n\n- `Lmsr.move`  \n    Deterministic pricing math using fixed‑point arithmetic (`SCALE = 1_000_000`) with a 5th‑degree Taylor approximation of `exp(x)` to compute `price_yes`, `price_no`, and `estimate_cost`.\n\n- `CollateralVault.move`  \n    Holds market liquidity as a `Balance\u003cSUI\u003e`.\n\n- `OutcomeToken.move`  \n    Represents user shares as fungible tokens; each token records `market_id`, `outcome`, and `amount`.\n\n- `WalrusOracleAdapter.move`  \n    Adapter that verifies a `Proof` from Walrus and invokes `market::resolve`, decoupling verification from market logic.\n\n### Frontend (packages/frontend)\n\nSingle‑page application built with React, Vite, and TypeScript. Key components:\n\n- State \u0026 data fetching\n    - React Query for server state, caching, and refetching\n    - `useGetMarkets`: finds `MarketCreated` events, then uses `multiGetObjects` to batch fetch market objects\n    - `usePriceHistory`: reconstructs price history by replaying `Traded` events and reapplying LMSR state changes\n\n- Sui integration\n    - `@mysten/dapp-kit` and `@suiware/kit` for wallet connectivity and transactions\n    - `useTransact` abstracts transaction construction, signing, and execution with lifecycle callbacks\n\n- Transaction helpers\n    - UI components call helpers (e.g., `prepareTradeV2Tx`) to construct `Transaction` blocks, keeping UI logic separate from transaction building\n\n## Prerequisites\n\n- Suibase: https://suibase.io/how-to/install.html  \n- Node.js \u003e= 20: https://nodejs.org/en/download/  \n- pnpm \u003e= 9: https://pnpm.io/installation\n\n## Local Development\n\n1. Start a local Sui network and explorer (available at http://localhost:9001):\n```bash\npnpm localnet:start\n```\n\n2. Compile and deploy Move modules to the local network. The deployment script updates the frontend `.env.local` with the package ID:\n```bash\npnpm localnet:deploy\n```\n\n3. Run the frontend (available at http://localhost:5173):\n```bash\npnpm run dev\n```\n\n## References\n\n- Sui dApp Starter Docs: https://sui-dapp-starter.dev/docs  \n- Suibase Docs: https://suibase.io/intro.html  \n- Move Book: https://move-book.com/  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswarooppatilx%2Fwalymarket","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswarooppatilx%2Fwalymarket","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswarooppatilx%2Fwalymarket/lists"}