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.
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 | 0xFDF377cB5Fb982B4D3f908FB8D3D9dA7aD529032 |
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.