Skip to main content

Dispute System

Overviewโ€‹

The dispute system enables decentralized conflict resolution between users and merchants, with Circle Admins acting as first-instance arbitrators.

Dispute Flowโ€‹

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ OPENING โ”‚
โ”‚ User opens dispute with evidence โ”‚
โ”‚ โ†’ Transaction becomes locked โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”‚
โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ RESPONSE โ”‚
โ”‚ Merchant has 48h to respond โ”‚
โ”‚ โ†’ Can attach counter-evidence โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”‚
โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ANALYSIS โ”‚
โ”‚ Circle Admin has 7 days to decide โ”‚
โ”‚ โ†’ Analyzes evidence from both sides โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ โ”‚
โ–ผ โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ USER WINS โ”‚ โ”‚ MERCHANT WINS โ”‚
โ”‚ โ†’ Refund โ”‚ โ”‚ โ†’ Release funds โ”‚
โ”‚ โ†’ Slash merch. โ”‚ โ”‚ โ†’ Case closed โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”‚ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”‚
โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ APPEAL (optional) โ”‚
โ”‚ Losing party can appeal within 48h โ”‚
โ”‚ โ†’ Protocol reviews the decision โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Dispute Typesโ€‹

1. Non-receiptโ€‹

  • Claim: User paid but didn't receive crypto
  • Expected evidence: Payment proof
  • Typical resolution: Refund from protection fund

2. Incorrect amountโ€‹

  • Claim: Received less than expected
  • Expected evidence: Transaction screenshot + receipt
  • Typical resolution: Difference covered by fund

3. Excessive delayโ€‹

  • Claim: Merchant didn't complete in reasonable time
  • Expected evidence: Transaction timeline
  • Typical resolution: Cancellation + possible slashing

4. Fraudโ€‹

  • Claim: Deliberate malicious behavior
  • Expected evidence: Complete documentation
  • Typical resolution: Ban + total slashing + refund

Deadlinesโ€‹

StageDeadlineConsequence if not met
Merchant response48hAutomatic ruling against
Admin decision7 daysAdmin slashing
Appeal48hDecision becomes final
Protocol review14 daysPrevious decision upheld

Penaltiesโ€‹

For Merchantsโ€‹

OutcomePenalty
Loses 1st disputeTransaction value (from stake)
Loses 3+ disputesStake retained for review
Proven fraudPermanent ban + 100% stake

For Circle Adminsโ€‹

OutcomePenalty
Decision reversed (1x)Warning
Decision reversed (2x+)Partial slashing
Ignores dispute0.5% stake per occurrence
Proven collusionBan + 100% stake

Evidenceโ€‹

Accepted typesโ€‹

  • Screenshots with metadata
  • Bank receipts (PDF)
  • Chat history (from app)
  • On-chain transactions (hash)
  • Videos (special cases)

Validationโ€‹

  • Metadata verified when possible
  • Cross-reference with on-chain data
  • Chat history is official (recorded)

Technical Implementationโ€‹

Dispute statesโ€‹

enum DisputeState {
Open, // Awaiting response
UnderReview, // Admin analyzing
Resolved, // Decision made
Contested, // Under appeal
Final // Case closed
}

Data structureโ€‹

struct Dispute {
uint256 transactionId;
address claimant; // Who opened
address respondent; // Against whom
DisputeState state;
uint256 openedAt;
uint256 resolvedAt;
bytes32 evidenceHash; // IPFS hash
address resolver; // Admin who decided
bool claimantWon;
}

Eventsโ€‹

event DisputeOpened(uint256 indexed disputeId, uint256 transactionId);
event DisputeResolved(uint256 indexed disputeId, bool claimantWon);
event DisputeContested(uint256 indexed disputeId);
event DisputeFinalized(uint256 indexed disputeId);

Admin Metricsโ€‹

The protocol tracks admin performance:

MetricImpact
% disputes resolved in under 48hRanking
% decisions appealedNegative score
% decisions reversedPotential slashing
Average resolution timeRanking

Admins with good metrics:

  • Rank higher in the system
  • Attract more merchants
  • May receive protocol bonuses