Features Solutions Technology Tokenomics Docs About
Docs / Tutorials / Dispute Resolution

Dispute Resolution Tutorial

Learn how to handle authenticity disputes and protect both brands and consumers.

Dispute Resolution Overview

Authenticity disputes can arise when there's uncertainty about a product's legitimacy. The TAG IT Network provides a comprehensive dispute resolution system that leverages blockchain transparency and AI-powered analysis to fairly resolve conflicts.

When Disputes Occur

Disputes typically arise in the following scenarios:

Key Stakeholders

The dispute resolution process involves several parties:

Dispute Resolution Flow:
+------------------+     +------------------+     +------------------+
|    Claimant      | --> |   TAG IT System  | --> |    ORACULS AI    |
|  Files Dispute   |     |  Collects Data   |     |    Analysis      |
+------------------+     +------------------+     +------------------+
                                                          |
                                                          v
+------------------+     +------------------+     +------------------+
|    Resolution    | <-- |   DAO Review     | <-- |   Auto-Resolve   |
|     Outcome      |     |  (if escalated)  |     |   or Escalate    |
+------------------+     +------------------+     +------------------+

Step 1: Filing a Dispute

To initiate a dispute, use the TAG IT SDK or REST API to submit a formal claim with supporting evidence.

API Call

import { TagIt } from '@tagit/sdk';

const tagit = new TagIt({
  apiKey: process.env.TAGIT_API_KEY,
  network: 'mainnet'
});

// File a new dispute
async function fileDispute(productTagId, evidenceData) {
  try {
    const dispute = await tagit.disputes.create({
      tagId: productTagId,
      type: 'authenticity', // or 'ownership', 'metadata'
      description: 'Product characteristics do not match registered metadata',
      evidence: {
        photos: evidenceData.photos, // Array of image URLs
        purchaseReceipt: evidenceData.receiptUrl,
        nfcScanLog: evidenceData.scanLog,
        additionalNotes: evidenceData.notes
      },
      claimantWallet: '0x742d35Cc6634C0532925a3b844Bc9e7595f5c9E8',
      requestedOutcome: 'refund' // or 'replacement', 'investigation'
    });

    console.log('Dispute ID:', dispute.id);
    console.log('Status:', dispute.status);
    console.log('Estimated resolution:', dispute.estimatedResolution);

    return dispute;
  } catch (error) {
    console.error('Failed to file dispute:', error.message);
  }
}

// Example usage
fileDispute('NFC-TAG-001-ABC', {
  photos: ['https://storage.example.com/evidence/photo1.jpg'],
  receiptUrl: 'https://storage.example.com/receipt.pdf',
  scanLog: { timestamp: '2024-06-15T14:30:00Z', result: 'mismatch' },
  notes: 'Serial number on product does not match blockchain record'
});

Required Evidence

For a dispute to be processed, you must provide:

Note

Disputes must be filed within 90 days of the original transaction. Evidence submitted after filing may be added within 7 days.

Step 2: Gathering Evidence

The TAG IT system automatically collects blockchain records and NFC signature data to supplement your submitted evidence.

Blockchain Records

The system retrieves immutable on-chain data including:

// Retrieve blockchain evidence for a dispute
async function getBlockchainEvidence(disputeId) {
  const evidence = await tagit.disputes.getEvidence(disputeId);

  return {
    mintingTx: evidence.blockchain.mintTransaction,
    transfers: evidence.blockchain.transferHistory,
    metadataChanges: evidence.blockchain.metadataUpdates,
    previousDisputes: evidence.blockchain.disputeHistory
  };
}

NFC Signature Verification

NFC chips contain cryptographic signatures that prove authenticity:

// Verify NFC signature integrity
async function verifyNFCSignature(tagId) {
  const verification = await tagit.nfc.verifySignature(tagId);

  console.log('Signature valid:', verification.isValid);
  console.log('Chip manufacturer:', verification.chipManufacturer);
  console.log('Encryption standard:', verification.encryptionType);
  console.log('Tamper detection:', verification.tamperStatus);

  return verification;
}
NFC Signature Verification Process:
+------------------+     +------------------+     +------------------+
|   Physical NFC   | --> |   Read Chip ID   | --> |   Verify Against |
|   Tag on Product |     |   & Signature    |     |   Blockchain     |
+------------------+     +------------------+     +------------------+
                                                          |
                                                          v
                                                  +------------------+
                                                  |   Match Status:  |
                                                  |   VALID / INVALID|
                                                  +------------------+

Step 3: Review Process

Once evidence is gathered, the ORACULS AI system performs automated analysis to determine authenticity.

ORACULS AI Analysis

The ORACULS (Optimized Reasoning And Classification Using Learned Systems) AI evaluates:

// Check dispute analysis status
async function checkAnalysisStatus(disputeId) {
  const status = await tagit.disputes.getStatus(disputeId);

  console.log('Analysis phase:', status.currentPhase);
  console.log('Confidence score:', status.confidenceScore);
  console.log('Factors analyzed:', status.analyzedFactors);

  if (status.currentPhase === 'ai_review') {
    console.log('AI findings:', status.aiFindings);
  }

  return status;
}

// Example response
/*
{
  "disputeId": "DISP-2024-001234",
  "currentPhase": "ai_review",
  "confidenceScore": 0.87,
  "analyzedFactors": [
    "nfc_signature",
    "visual_comparison",
    "transaction_pattern",
    "metadata_consistency"
  ],
  "aiFindings": {
    "nfcSignature": "valid",
    "visualMatch": 0.92,
    "transactionAnomaly": false,
    "metadataMatch": true
  }
}
*/
Processing Time

AI analysis typically completes within 24-48 hours. Complex cases involving brand verification may take up to 7 days.

Step 4: Resolution Outcomes

Based on the evidence and analysis, disputes are resolved with one of three outcomes:

Authentic

The product is verified as genuine. The dispute is closed, and the claimant is notified.

{
  "outcome": "authentic",
  "confidence": 0.95,
  "summary": "Product verified as genuine based on NFC signature and blockchain records",
  "actions": [],
  "appealDeadline": "2024-07-15T00:00:00Z"
}

Counterfeit

The product is determined to be fake. Remediation actions are triggered.

{
  "outcome": "counterfeit",
  "confidence": 0.89,
  "summary": "Product identified as counterfeit based on visual analysis and invalid NFC signature",
  "actions": [
    "refund_initiated",
    "seller_flagged",
    "brand_notified",
    "nfc_tag_blacklisted"
  ],
  "refundAmount": "299.99",
  "refundCurrency": "USD",
  "appealDeadline": "2024-07-15T00:00:00Z"
}

Inconclusive

Evidence is insufficient for a definitive determination. Case is escalated for human review.

{
  "outcome": "inconclusive",
  "confidence": 0.52,
  "summary": "Unable to determine authenticity with sufficient confidence",
  "nextSteps": "escalated_to_dao",
  "escalationReason": "Conflicting evidence between visual analysis and blockchain records",
  "daoReviewDeadline": "2024-07-22T00:00:00Z"
}

Step 5: Appeals Process

If either party disagrees with the resolution, they can escalate to the TAG IT DAO for community arbitration.

Escalation to DAO

// File an appeal
async function fileAppeal(disputeId, appealReason) {
  const appeal = await tagit.disputes.appeal({
    disputeId: disputeId,
    reason: appealReason,
    additionalEvidence: {
      expertOpinion: 'https://storage.example.com/expert-report.pdf',
      brandStatement: 'https://storage.example.com/brand-verification.pdf'
    },
    stakingAmount: '100' // TAGIT tokens staked for appeal
  });

  console.log('Appeal ID:', appeal.id);
  console.log('DAO review starts:', appeal.reviewStartDate);
  console.log('Voting deadline:', appeal.votingDeadline);

  return appeal;
}

DAO Arbitration Process

  1. Appeal submission: Claimant stakes TAGIT tokens and provides additional evidence
  2. Arbitrator selection: Random selection of qualified DAO members
  3. Evidence review: 7-day period for arbitrators to examine all materials
  4. Voting: Arbitrators cast weighted votes based on their reputation score
  5. Final resolution: Majority decision becomes binding
Staking Requirement

Appeals require staking 100 TAGIT tokens. If the appeal is successful, tokens are returned plus a bonus. If unsuccessful, tokens are distributed to arbitrators.

Automated Dispute Handling

For high-volume brands, TAG IT offers automated dispute handling through configurable rules engines.

Rules Engine Configuration

// Configure automated dispute rules
async function configureDisputeRules(brandId) {
  const rules = await tagit.brands.setDisputeRules(brandId, {
    autoResolve: {
      enabled: true,
      confidenceThreshold: 0.90, // Auto-resolve if AI confidence > 90%
      maxValue: 500 // Only for products under $500
    },
    autoRefund: {
      enabled: true,
      conditions: [
        { outcome: 'counterfeit', confidence: 0.85 },
        { nfcStatus: 'tampered' }
      ]
    },
    escalationTriggers: [
      { disputeValue: 1000 }, // Escalate high-value items
      { repeatClaimant: true }, // Escalate repeat claimants
      { vipCustomer: true } // Escalate VIP customers
    ],
    notificationWebhook: 'https://api.brand.com/webhooks/disputes'
  });

  return rules;
}

Threshold Configuration

Set thresholds for automatic actions:

Fraud Prevention Tips

Proactive measures to reduce disputes and protect against counterfeiting:

For Brands

For Consumers

// Monitor fraud indicators for a brand
async function getFraudMetrics(brandId) {
  const metrics = await tagit.brands.getFraudMetrics(brandId, {
    timeframe: '30d'
  });

  console.log('Dispute rate:', metrics.disputeRate);
  console.log('Counterfeit detections:', metrics.counterfeitCount);
  console.log('Flagged sellers:', metrics.flaggedSellers);
  console.log('High-risk regions:', metrics.riskRegions);

  return metrics;
}
Best Practice

Brands that implement comprehensive NFC authentication see a 94% reduction in counterfeit-related disputes and a 78% faster resolution time for legitimate claims.

Edit this page on GitHub
Type to search documentation...