Crucible is a GenLayer staked-debate court: two parties enter a motion, commit matching GEN stakes, submit opposing cases, and let an intelligent contract adjudicate the record with live web evidence, LLM reasoning, validator-comparative consensus, challenges, appeals, settlement, and reputation.
This is not a landing-page mockup. The repository contains the static product UI, the deployed Studionet contract source, deployment metadata, smoke transaction evidence, and tests.
Crucible turns a debate into a verifiable dispute lifecycle:
- A creator opens a duel and stakes GEN.
- A challenger accepts with an opposing case and matching stake.
- Evidence and arguments are attached to the record.
- GenLayer reads and reasons over the dispute.
- The contract opens challenge and appeal windows.
- The final settlement pays or archives the duel.
- Reputation updates are kept alongside the audit trail.
The frontend preserves the original face-off arena UX, but the contract behind it was upgraded into a larger protocol with lifecycle state, challenge/appeal logic, reputation, indexed reads, and legacy compatibility wrappers.
| Area | Detail |
|---|---|
| Contract | contracts/crucible_v2.py |
| Size | 43,516 bytes |
| Network | GenLayer Studionet, chain id 61999 |
| Write methods | 20 |
| Read methods | 20 |
| GenLayer features | gl.nondet.web.render, gl.nondet.exec_prompt, gl.eq_principle.prompt_comparative |
| Storage model | duel records, case records, evidence, challenge records, appeal records, reputation, audit events |
| Legacy UI support | open_duel, accept_duel, rule, get_duel, get_duel_count, get_argument |
Core lifecycle:
draft_duel
-> add_case_for / add_case_against
-> add_evidence
-> open_deliberation
-> judge_with_genlayer
-> open_challenge_window
-> submit_challenge
-> resolve_challenge_with_genlayer
-> submit_appeal
-> resolve_appeal_with_genlayer
-> settle
-> archive_duel
Useful reads:
get_duel_count
get_duel
get_duel_record
get_argument_count
get_argument
get_recent_duels
get_duels_by_status
get_party_duels
The deployed contract was smoke-tested with 19 finalized writes, including legacy UI paths and four GenLayer reasoning calls.
Test result:
Schema valid
19 smoke writes finalized
39/39 read assertions passed
Static frontend repointed and Vercel-deployed
Crucible ships as a static WebGL-styled face-off interface:
- split FOR / AGAINST composition
- Three.js clash arena
- live wallet connection through the bundled browser client
- on-chain read flow through GenLayer JS
- write actions routed through the connected EVM wallet
- standalone Vercel bundle with local
shared/client files
From this repository folder:
python -m http.server 8080Open:
http://localhost:8080/
npx --yes vercel@latest --prod --yesThis public repository intentionally excludes local secrets:
- no private keys
- no vault files
- no
.envfiles - no
.vercelproject state - no local dashboard data
Public files include only frontend code, contract source, deployment metadata, tests, and non-sensitive proof links.