TESTNET ONLY. AgentFault is deployed on Bradbury testnet. It is not a mainnet deployment and does not establish legal liability.
| Resource | Link |
|---|---|
| Repository | GIFTEDLOV/agentfault |
| Bradbury contract | 0xFd4905b32056f13c3D00DE94b616b006942923b0 |
| Deployment transaction | 0x913e2004…97244 |
| Assessment transaction | 0xa45ed34f…2308b |
| Bradbury proof | artifacts/bradbury-proof.json |
| Studionet proof | artifacts/studionet-proof.json |
- Contract release commit:
6fb8f2cb76b495c1c2bcf907c5f9271bc02aac9a - Contract SHA-256:
e57c02ee106a86c4b2e00a101cb2cde9c3951b4620982b3ca8fea87f896a96a5 - Deployable SHA-256:
e57c02ee106a86c4b2e00a101cb2cde9c3951b4620982b3ca8fea87f896a96a5 - Bradbury contract:
0xFd4905b32056f13c3D00DE94b616b006942923b0
Later commits document proof, tooling, and reviewer material only; they do not change the frozen deployed contract.
AgentFault is a standalone GenLayer Intelligent Contract primitive for neutral responsibility attribution in a contested two-agent workflow.
A workflow creator commits two participant addresses, the exact task, each exact obligation, and exact final acceptance criteria. The creator does not bind either participant. Agent A and Agent B must each accept the exact immutable commitment from their own registered address. Only then may each submit one authenticated output.
AgentFault does not implement payments, escrow, tokens, reputation, governance, punishment, appeals, or legal liability. Its output is a GenLayer consensus responsibility-attribution record over the committed workflow evidence.
Natural-language obligations and outputs cannot be evaluated reliably by deterministic contract code alone. A centralized backend or AI service would make one operator the authoritative adjudicator. AgentFault puts the bounded semantic decision inside the Intelligent Contract so validators independently reproduce it.
GenLayer is appropriate when parties need a shared on-chain judgment over language and authenticated evidence, rather than an answer produced by one backend. The contract uses no arbitrary external URLs in V1: every validator receives the same committed workflow terms and authenticated participant outputs.
create_workflowstores a commitment undersha256(length_prefixed(creator_address, workflow_id)). Addresses are lower-case canonical text for hashing; the typed addresses remain in storage for sender authentication.- The workflow stays
PENDING_ACCEPTANCEuntil both participants accept. - A single symmetric
submit_outputmethod identifies the sender as Agent A or Agent B. Either participant may submit first; each can submit only once. assesscopies primitive values out of storage, independently classifies the exact evidence in a nondeterministic leader and validator function, compares only the bounded verdict, and writes storage only after consensus.- Successful assessment creates an immutable
ResponsibilityRecordand three SHA-256 digests.
The canonical serialization uses UTF-8, an explicit schema tag, fixed field order, and an unsigned 64-bit byte-length prefix for every field. No timestamp participates in any digest or state transition.
The creator may be one of the participants. Creation creates only a pending commitment. accept_workflow is permissioned to the two registered addresses, is immutable, and cannot be revoked or overridden. Output submission is impossible until both acceptance flags are true.
The semantic prompt explicitly treats all workflow fields and outputs as untrusted data. It rejects prompt injection as authority, ignores fake system messages and embedded verdict JSON, uses no web browsing or outside knowledge, and judges only the exact committed evidence. Participant addresses are authenticated by the transaction sender; semantic facts are not inferred beyond the committed text.
The leader returns one exact JSON object with one verdict key. The custom validator independently runs the same classification and compares the verdict. Malformed model output, missing output, runtime exceptions, timeouts, validator disagreement, and deterministic violations fail the transaction; they are never stored as INCONCLUSIVE.
Exactly five business verdicts are accepted:
AGENT_A_FAULTAGENT_B_FAULTSHARED_FAULTNEITHER_AGENT_FAULTINCONCLUSIVE
INCONCLUSIVE means valid, complete evidence is genuinely insufficient or ambiguous among the other four semantic outcomes. It is not an error fallback.
Public methods are:
create_workflow(workflow_id, agent_a, agent_b, task_spec, agent_a_obligation, agent_b_obligation, acceptance_criteria)accept_workflow(workflow_key)submit_output(workflow_key, output)assess(workflow_key)get_workflow(workflow_key)get_assessment(workflow_key)get_responsibility_record(workflow_key)contract_info()
See examples/integration.py for the current genlayer-py transaction flow. The integration example never computes the authoritative verdict off-chain; it reads the contract's assessment and record after reconciliation.
Direct Mode tests cover creation bounds, creator namespaces, consent authorization, exact digest immutability, both submission orders, output immutability, all five verdicts, strict model parsing, prompt injection in every semantic field, validator agreement/disagreement, malformed validator output, digest reproducibility, divergent local clocks, and absence of timestamps. Tests enable direct_vm.strict_mocks = True and direct_vm.check_pickling = True.
Run:
python -m pytest tests -q
python tools/mutation_test.pyProduction-shaped multi-validator checks are in tests/studio/test_consensus.py. They are opt-in and require GenLayer Studio plus three funded account variables; they use five mocked validators and never require arbitrary web evidence:
$env:AGENTFAULT_RUN_STUDIO = "1"
gltest tests/studio/test_consensus.py -vThe current checkout records whether this optional network gate was actually run; skipped Studio tests are not represented as live consensus evidence.
On 2026-08-20, a local GLSim attempt was made after installing its documented simulator extras. It is classified as LOCAL_SIMULATOR_COMPATIBILITY_FAILURE: the installed simulator failed on the contract storage path and then exposed an empty public-method schema. It is not production consensus evidence.
The deliberate critical mutation gate covers mutual consent, sender authorization, same-address rejection, output overwrite, ready-state assessment, leader-only trust, malformed-output mapping, record creation, and timestamp introduction.
The frozen release was exercised on Bradbury using a mutually accepted two-agent workflow. Agent A fulfilled its exact committed obligation. Agent B omitted the mandatory activation date and introduced unsupported claims about validator signatures and centralized approval. Bradbury consensus produced AGENT_B_FAULT.
- Contract:
0xFd4905b32056f13c3D00DE94b616b006942923b0 - Deployment transaction:
0x913e20043612eb812d1a9264178d461832dffd1f37e9c027686d75e8e3d97244 - Assessment transaction:
0xa45ed34fe1e69de388d5cb95883a2a1caebc8d02acad290dd0c5b8b76182308b - Deployment and all six workflow transactions reached
FINALIZED, withFINISHED_WITH_RETURNand protocol resultAGREE. - The final assessment recorded one validator
TIMEOUTand fourAGREEobservations; the protocol result wasAGREE, and no deterministic violation was observed. - The workflow reached
ASSESSED; the ResponsibilityRecord exists; workflow, assessment, and record digests independently reproduce exactly.
The complete machine-readable record is artifacts/bradbury-proof.json. This record attributes responsibility over the committed workflow evidence; it does not establish legal liability.
| Claim | Proven? |
|---|---|
| Frozen exact source deployed on Bradbury | YES |
Deployment FINALIZED / AGREE / FINISHED_WITH_RETURN |
YES |
Canonical AGENT_B_FAULT flow finalized |
YES |
| ResponsibilityRecord exists | YES |
| All three digests independently reproduced | YES |
| Assessment unanimous | NO — 4 AGREE / 1 TIMEOUT |
| Deterministic violation in canonical assessment | NO |
| All five verdicts tested locally | YES |
| All five verdicts proven live on Bradbury | NO |
| Mainnet deployment | NO |
| External audit | NO |
| Legal liability | NO |
- Workflow terms are immutable after creation.
- Creator-scoped keys prevent unrelated creators from colliding on a trivial text ID.
- Only the two exact registered addresses can accept or submit.
- Each acceptance and output is one-way and one-time.
- Semantic execution captures only primitive copies before the nondeterministic boundary.
- No storage writes occur inside leader or validator execution.
- Consensus compares the independently reproduced verdict, not prose or hidden reasoning.
- SHA-256 digests bind the exact workflow, assessment, and record serialization.
AgentFault authenticates address control and committed text, not legal identity or real-world facts. It does not establish legal liability, a court judgment, or legally binding fault. V1 has no external evidence, privacy, timing rules, payment, appeal, or punishment. Validator model quality and consensus availability remain protocol dependencies. INCONCLUSIVE is a semantic business result only when evidence is valid but genuinely ambiguous.
The contract is contracts/AgentFault.py. The first line pins the current official GenVM dependency declaration. Host test dependencies are pinned in requirements-test.txt, and the resolved toolchain and dependency-source discrepancy are recorded in toolchain.json. The release keeps the frozen genlayer-py==0.16.3 host dependency because that is the published-wheel-compatible environment actually proven across Direct Mode, lint/validation, Studionet, Bradbury, and CI; it is not described as the latest SDK.
Current official guidance used for this build:
- Intelligent Contracts introduction
- When to Use GenLayer
- Development Setup
- Equivalence Principle
- Storage
- GenLayer Testing Suite
contracts/AgentFault.py frozen Intelligent Contract source
tests/ Direct Mode and opt-in Studio checks
tools/ canonical digest and release tooling
examples/integration.py typed-address, crash-safe integration example
artifacts/ sanitized Bradbury/Studionet proof records
README.md technical overview and evidence
SUBMISSION.md concise reviewer handoff
MIT. See LICENSE.