CourtCase

Each dispute is a separately deployed CourtCase contract created by CourtCaseFactory. The factory address is 0xfCD7A25A6E5EcA5Ff95e861adDdFC23fF08Da6Cc.

Case States

enum CaseState {
    Filed,        // 0 — waiting for defendant response
    Active,       // 1 — both responded, evidence open
    Deliberating, // 2 — judges assigned, voting open
    Resolved,     // 3 — verdict by majority vote
    Defaulted,    // 4 — defendant no-show
    Appeal        // 5 — appeal in progress
}

Constants

uint256 public constant BASE_FEE    = 0.0001 ether;
uint256 public constant APPEAL_BOND = BASE_FEE * 3;  // 0.0003 ETH
uint256 public constant APPEAL_WINDOW = 10 minutes;

Key Functions

// Defendant responds — must send BASE_FEE ETH
function respondToCase() external payable

// Submit evidence IPFS hash (before judges assigned)
function submitEvidence(string calldata _ipfsHash) external

// Assigned judge submits vote
function submitVote(bool _plaintiffWins) external

// Trigger default if defendant missed deadline
function missedDeadline() external

// Force resolution if voting deadline expired
function resolveAfterDeadline() external

// File appeal within APPEAL_WINDOW after verdict
function fileAppeal() external payable

Events

Stake Distribution on Verdict

  • Winner: receives back their stake + majority of loser's stake

  • Court: retains a small fee from loser's stake

  • Loser: forfeits partial stake, reputation decreases

Last updated