Vigil is a GenLayer trigger-watch protocol for source-backed conditions, clauses, checks, challenges and appeals.
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 web-trigger automation protocol. Users arm watches against public URLs and trigger conditions; the contract checks source material with validator-agreed web/LLM reasoning, then supports challenges, appeals, firing, disarming, archival, reputation and audit logs.
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/vigil_v2.py |
| Size | 36229 bytes |
| Network | GenLayer Studionet, chain id 61999 |
| Write methods | 15 |
| Read methods | 21 |
| GenLayer features | live web rendering, LLM execution, validator-comparative consensus |
| Deployment wallet | 0xAD04f5C37B125DE61e5344735CAABF3D34aeB988 |
| Contract address | 0x4Af79F8c3D52Cf884DF28B0Ec6Bc9f4336185F2B |
Architecture note:
Vigil V2 (# v0.2.16), 36229 bytes, 15 write + 21 view. Objects: Watch, Clause, Evidence, Check, Challenge, Appeal, Reputation/Profile + AuditEntry. Lifecycle OPEN->REVIEWING->REVIEWED->CHALLENGE_WINDOW->APPEALED->FIRED/DISARMED->ARCHIVED. DynArray[str] stores with embedded per-watch ids and scan-based read views for runtime stability. GenLayer nondet (web.render + exec_prompt inside eq_principle.prompt_comparative) for trigger checks, challenge rulings and appeal rulings; strict JSON normalization, confidence/trigger bps, URL validation and prompt-injection guardrails. Backward-compatible create_watch/check/disarm/get_watch/get_watch_count keep the static app shape intact; draft_watch is the automation-safe non-payable smoke path.
Core smoke flow:
set_vigil_standard
-> draft_watch
-> add_clause
-> add_evidence_wiki
-> add_evidence_britannica
-> open_check
-> check_watch
-> open_challenge_window
-> submit_challenge
-> resolve_challenge
-> submit_appeal
-> resolve_appeal
-> check
Test result:
Schema valid
15 smoke writes finalized
35/35
Static frontend bundled for standalone Vercel deployment
Vigil 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.