{"id":51091130,"url":"https://github.com/conssslab/official-limit-time-event","last_synced_at":"2026-06-24T02:02:00.262Z","repository":{"id":362734077,"uuid":"1253907275","full_name":"ConsssLab/official-limit-time-event","owner":"ConsssLab","description":"Official limit time events, built with Walrus, preventing the team from arbitrarily changing the rules and ensuring absolute fairness for players","archived":false,"fork":false,"pushed_at":"2026-06-05T16:35:20.000Z","size":32662,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-05T18:39:41.182Z","etag":null,"topics":["sui","tatum","walrus"],"latest_commit_sha":null,"homepage":"https://consss.wal.app","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ConsssLab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2026-05-29T23:49:13.000Z","updated_at":"2026-06-05T16:26:15.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ConsssLab/official-limit-time-event","commit_stats":null,"previous_names":["conssslab/official-limit-time-event"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/ConsssLab/official-limit-time-event","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConsssLab%2Fofficial-limit-time-event","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConsssLab%2Fofficial-limit-time-event/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConsssLab%2Fofficial-limit-time-event/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConsssLab%2Fofficial-limit-time-event/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ConsssLab","download_url":"https://codeload.github.com/ConsssLab/official-limit-time-event/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConsssLab%2Fofficial-limit-time-event/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34713791,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","tatum","walrus"],"created_at":"2026-06-24T02:01:56.877Z","updated_at":"2026-06-24T02:02:00.256Z","avatar_url":"https://github.com/ConsssLab.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ConSSS Wars — Official Limited-Time Events\n\n\u003e This repository **is [consss.wal.app](https://consss.wal.app)** — the home for **all official\n\u003e limited-time event pages** of **ConSSS Wars: Echoes of Chainoa（鏈州英雄傳：鏈之迴響）**.\n\nIt is published as a [Walrus Site](https://docs.walrus.site/) (SuiNS name `consss`), so the\nevent pages are served from decentralized storage rather than a server we control.\n\n## Why a Walrus Site (and not a normal server)\n\n**Trustless hosting protects players.** Once an event page is published to Walrus, the game\nteam (ConSSS Lab) **cannot quietly change the event rules afterward**. The page — its eligibility\nlogic, the reward, the on-chain contract IDs it points at — is content-addressed and immutable\nfor the published version. Players can see exactly what they signed up for, and trust that the\nrules they joined under won't be silently altered mid-event. That guarantee is the whole point\nof hosting here instead of on a server where the team could swap the page at any time.\n\n(The site object *can* be updated to point at a new version, but every update is an on-chain,\npublicly visible action with a new content hash — there is no invisible \"edit in place\".)\n\n## Current event\n\n**Runs until 2026-06-30 23:59 UTC.**\n\nDuring the event window, a player who:\n\n1. plays **[play.conssswars.com](https://play.conssswars.com)** and\n2. clears **Suiren's three battles** (battles 1, 2 and 3), minting the **3 clearance NFTs**\n   (Chronicles for battles 1, 2 and 3),\n\ncan then come to **[consss.wal.app](https://consss.wal.app)** and **claim the limited-time event\ntreasure chest** — minting a single **ConSSS Wars - 1st Gift** NFT on **Sui mainnet**.\n\nEligibility is verified **on-chain** at claim time, so possession of the three Chronicles\n(earned by that wallet) is what unlocks the reward — not anything the front end says.\n\n## Links\n\n- Game: https://play.conssswars.com\n- Site: https://conssswars.com/\n- X: https://x.com/conssswars\n- Discord: https://discord.com/invite/GyrfKEADaG\n\n## Features\n\n- **Eligibility-gated claim** — one mint per wallet, gated on-chain by ownership of the\n  Chronicles earned for battles 1, 2 and 3.\n- **Two chests, one gift** — pick the Tatum or Walrus chest; both open the same reward and\n  reveal `consss_1st_gift.png`.\n- **Bilingual (zh / en)** — top-right language toggle, persisted in `localStorage`.\n- **Wallet Standard** — connects any Sui-compatible wallet (e.g. Slush), with auto-connect on\n  revisit and graceful no-wallet / cancel / out-of-gas handling.\n- **Shared design system** — reuses the official conssswars.com look (Chainoa 9-slice panels and\n  buttons, Noto Sans TC + Source Serif 4).\n- **No build step** — vanilla HTML/CSS/JS; SDK modules loaded as ESM from `esm.sh`.\n\nThis repository contains only the static front end. The Move contract (`event_01_gift`) lives in\nthe separate `contracts` repo.\n\n## How it works\n\n1. The visitor connects a Sui wallet.\n2. The page queries the wallet's owned `Chronicle` objects and builds a 1 / 2 / 3 checklist,\n   keeping only Chronicles the wallet **earned itself** (`player == caller`) for each of battles\n   1, 2 and 3. It also calls `has_claimed` to detect a prior mint.\n3. The claim chests are enabled only when all three Chronicles are present and the wallet has not\n   already claimed.\n4. Opening a chest submits `event_01_gift::mint`, passing the three Chronicle objects. The\n   contract re-verifies eligibility and one-mint-per-wallet on-chain, assigns a sequential\n   edition, and transfers the Gift to the caller.\n\nEligibility is enforced by the contract; the front-end checks are only there to guide the user.\n\n## On-chain (Sui mainnet)\n\n| Item | Value |\n|---|---|\n| `event_01_gift` package | `0xd1ed457cb4f1bb209c09a094f772472db15c115a29eb5995b7cb2a2313227896` |\n| `MintCounter` (shared) | `0x7c15f5391cd1baf53bc3280ac3f75331c5abe027a370eedb39ac9d7f301890a9` |\n| `chronicle` package (eligibility lookup) | `0x5760b2685d41bd45e2991dedc242e866b1aca9ff3c3a5e193445751c2b8dfe4b` |\n| Mint call | `event_01_gift::mint(counter, c1, c2, c3, clock)` |\n| NFT name | `ConSSS Wars - 1st Gift` |\n\n`c1 / c2 / c3` are the caller's own Chronicle objects for battles 1, 2 and 3; `clock` is the\nsystem clock at `0x6`. Network IDs are configured at the top of `app.js` (`NETWORK = \"mainnet\"`).\n\n## Project layout\n\n```\nindex.html            event page markup (Chainoa-themed)\nstyles.css            gold / navy painterly styling, 9-slice panels \u0026 buttons\napp.js                wallet connect + on-chain eligibility check + mint (ESM)\nws-resources.json     Walrus Sites routing (SPA fallback to /index.html)\nbuild-dist.sh         assembles the slim dist/ bundle for deployment\nconsss_1st_gift.png   NFT reveal image shown on a successful claim\nchests/Tatum.png      chest / powered-by logo\nchests/Walrus.png     chest / powered-by logo\nassets/               icon + shared Chainoa UI art (panels, buttons)\n```\n\n## Local development\n\nNo build or install step. Serve the repo root with any static server:\n\n```bash\npython3 -m http.server 8099   # then open http://localhost:8099\n```\n\nTo complete a claim you need a Sui-compatible wallet on **mainnet** with a little gas, plus the\nChronicles earned for battles 1, 2 and 3.\n\n## Deploy (Walrus Sites → consss.wal.app)\n\n```bash\n./build-dist.sh                                              # → dist/\nsite-builder --context mainnet update --epochs \u003cN\u003e ./dist \u003csite-object-id\u003e\n```\n\n`\u003csite-object-id\u003e` is the existing `consss.wal.app` site object. `build-dist.sh` copies only the\noptimized web assets (HTML/CSS/JS, the reveal image, chest logos, and the shared UI art) into\n`dist/`. Updating requires mainnet SUI (gas) and WAL (storage) on the deployer address.\n\nEach `update` republishes the page as a new immutable Walrus version, so any change to the event\nrules is an explicit, on-chain, publicly visible action — never a silent in-place edit.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconssslab%2Fofficial-limit-time-event","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconssslab%2Fofficial-limit-time-event","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconssslab%2Fofficial-limit-time-event/lists"}