Skip to content

Repository files navigation

AgentFault

CI Network: Bradbury 4221 Contract / v1

TESTNET ONLY. AgentFault is deployed on Bradbury testnet. It is not a mainnet deployment and does not establish legal liability.

Live links

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

Release identity

  • 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.

1. Product / Primitive

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.

2. Problem

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.

3. Why GenLayer

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.

4. How It Works

  1. create_workflow stores a commitment under sha256(length_prefixed(creator_address, workflow_id)). Addresses are lower-case canonical text for hashing; the typed addresses remain in storage for sender authentication.
  2. The workflow stays PENDING_ACCEPTANCE until both participants accept.
  3. A single symmetric submit_output method identifies the sender as Agent A or Agent B. Either participant may submit first; each can submit only once.
  4. assess copies 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.
  5. Successful assessment creates an immutable ResponsibilityRecord and 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.

5. Mutual Consent Model

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.

6. Evidence / Trust Architecture

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.

7. Verdicts

Exactly five business verdicts are accepted:

  • AGENT_A_FAULT
  • AGENT_B_FAULT
  • SHARED_FAULT
  • NEITHER_AGENT_FAULT
  • INCONCLUSIVE

INCONCLUSIVE means valid, complete evidence is genuinely insufficient or ambiguous among the other four semantic outcomes. It is not an error fallback.

8. API / Integration

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.

9. Testing

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.py

Production-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 -v

The 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.

10. Live Proof

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, with FINISHED_WITH_RETURN and protocol result AGREE.
  • The final assessment recorded one validator TIMEOUT and four AGREE observations; the protocol result was AGREE, 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.

Precisely what is and is not proven

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

11. Security Model

  • 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.

12. Limitations

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.

13. Developer Detail

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:

Repository layout

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

License

MIT. See LICENSE.

About

GenLayer Intelligent Contract for consent-gated responsibility attribution in contested two-agent workflows.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages