Sentinel is a GenLayer claim-sentinel protocol for assertions, source evidence, challenge markets, adjudication and appeal review.
This repository is a public proof package: it includes the product UI, the deployed GenLayer Studionet contract source, deployment metadata, finalized smoke transactions, and test evidence. Local wallet secrets are not included.
Sentinel now assigns rule changes to the protocol administrator and evidence changes to the claim owner or administrator. Counter-bonding closes explicitly before review, unresolved challenges and appeals stop settlement, and a successful review can replace the provisional verdict. Neutral outcomes refund the bonded positions instead of selecting a side by default. tests/test_v2_invariants.py checks permissions, maturity, review blocking, verdict revision and payout state.
A GenLayer bonded fact-verification court. Operators file source-backed claims, post bonds, counter-bond disputed statements, attach evidence and obligations, run GenLayer web/LLM review, then resolve challenges, appeals, payouts, archives, reputation and audit trails.
The frontend keeps the original product experience, while the contract adds a reviewable on-chain lifecycle: source records, GenLayer reasoning, challenge and appeal paths, indexed reads, and an audit trail that can be inspected after deployment.
| Area | Detail |
|---|---|
| Contract | contracts/sentinel_v2.py |
| Size | 50033 bytes |
| Network | GenLayer Studionet, chain id 61999 |
| Write methods | 31 |
| Read methods | 22 |
| GenLayer features | live web rendering, LLM execution, validator-comparative consensus |
| Deployment wallet | 0x393F435b0B6B9784a35686Ad089A856aFB460179 |
| Contract address | 0xc709086369FB93e47b602a585fd67aF82f4120B4 |
Architecture note:
Sentinel V2 (# v0.2.16), 50033 bytes, 31 write + 22 view. Objects: Claim/Dossier, Stake, Obligation, Evidence, Review, Challenge, Appeal, Reputation/Profile + AuditEntry. Lifecycle OPEN->REVIEWING->REVIEWED->CHALLENGE_WINDOW->APPEALED->RESOLVED->ARCHIVED. GenLayer nondet (web.render + exec_prompt inside eq_principle.prompt_comparative) reviews public source evidence, challenges and appeals; strict JSON normalization, confidence/trigger bps, URL validation and prompt-injection guardrails. Backward-compatible assert_claim/challenge/adjudicate/get_claim/get_claim_count keep the static case-file app intact.
Core smoke flow:
set_claim_standard
-> assert_claim
-> add_obligation
-> add_evidence_docs
-> add_evidence_web
-> challenge
-> open_review
-> review
-> open_challenge_window
-> submit_challenge
-> resolve_challenge
-> submit_appeal
-> resolve_appeal
Test result:
Schema valid
19 smoke writes finalized
41/41
Static frontend bundled for standalone Vercel deployment
Sentinel ships as a standalone static app:
- wallet connection through the bundled browser client
- GenLayer reads through
genlayer-js - writes routed through the connected EVM wallet
- bundled
shared/client files keep the Vercel deployment self-contained - deployed contract address pinned in
app.jsanddeployment.json
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 frontend code, contract source, deployment metadata, tests, and non-sensitive proof links.