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:
- A consumer suspects they received a counterfeit product
- NFC tag verification returns inconsistent results
- Ownership records show unexpected transfers
- Product metadata doesn't match physical characteristics
- Multiple parties claim ownership of the same item
Key Stakeholders
The dispute resolution process involves several parties:
- Claimant: The party filing the dispute (consumer, brand, or reseller)
- Respondent: The party against whom the dispute is filed
- ORACULS AI: The automated analysis system that evaluates evidence
- DAO Arbitrators: Community members who handle escalated cases
- Brand Representatives: Original manufacturers who can verify authenticity
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:
- Product photos: Clear images showing the product and any discrepancies
- NFC scan logs: Recent verification attempts with timestamps
- Purchase proof: Receipt, invoice, or transaction record
- Description: Detailed explanation of the issue
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:
- Original minting transaction and timestamp
- Complete ownership transfer history
- Metadata update records
- Previous dispute history for the product
// 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:
- Visual analysis: Compares submitted photos against brand reference images
- Pattern detection: Identifies anomalies in transaction patterns
- Signature verification: Validates cryptographic proofs
- Historical correlation: Cross-references with known fraud patterns
- Metadata consistency: Checks for discrepancies in product data
// 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
}
}
*/
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
- Appeal submission: Claimant stakes TAGIT tokens and provides additional evidence
- Arbitrator selection: Random selection of qualified DAO members
- Evidence review: 7-day period for arbitrators to examine all materials
- Voting: Arbitrators cast weighted votes based on their reputation score
- Final resolution: Majority decision becomes binding
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:
- Confidence threshold: Minimum AI confidence score for auto-resolution (recommended: 0.85-0.95)
- Value threshold: Maximum product value for automatic handling
- Time threshold: Auto-escalate if unresolved after X days
- Volume threshold: Alert if dispute rate exceeds X% of sales
Fraud Prevention Tips
Proactive measures to reduce disputes and protect against counterfeiting:
For Brands
- Use tamper-evident NFC tags: Choose chips that detect physical manipulation
- Implement dynamic authentication: Rotate cryptographic challenges
- Register comprehensive metadata: Include unique identifiers and specifications
- Monitor scan patterns: Flag unusual verification activity
- Train authorized resellers: Ensure proper handling of authenticated products
For Consumers
- Always verify before purchase: Scan NFC tags using the TAG IT app
- Check seller reputation: Review transaction history on the blockchain
- Document everything: Keep photos and receipts for potential disputes
- Report suspicious activity: Help the community by flagging potential counterfeits
// 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;
}
Brands that implement comprehensive NFC authentication see a 94% reduction in counterfeit-related disputes and a 78% faster resolution time for legitimate claims.