Fraud flag
Cambridge TCG runs a detection sweep against trading patterns. When a pattern matches, a fraud_signal is recorded and surfaced for a human to review. The signal carries a severity (low / medium / high / critical). It is an advisory record, not a punishment: no automatic person-level action is taken — no account is suspended and no earned money is withheld by a signal. Escrow is what protects people (funds are held until receipt is confirmed, and disputes refund the wronged party), so the signal only needs to be an honest note for review.
Where this lives in code.apps/storefront/src/lib/fraud/detection.ts(the patterns) andapps/storefront/src/lib/fraud/sweep.ts(the detection sweep, for human review only).
What the sweep looks at
- rapid_listing — a burst of orders in a short time window.
- self_trading — counterparty shares a shipping address with you.
- velocity_spike — sudden volume jump vs your baseline.
- new_account_high_value — large order on a new account.
- chargeback — bank chargeback filed on a paid trade.
How flags clear
A signal is a note for a person, not a lock on your account. It is reviewed and cleared by an operator, and the daily sweep re-evaluates as your activity normalises. You can always see what we noticed on /account/standing, along with how support can help.
The one exception: a break-glass for emergencies
There is exactly one way an account can be frozen, and it is reserved for a genuine platform-integrity emergency — an active exploit draining the platform, a compromised account being used to attack others, a systemic fraud threatening everyone at once. The kind of event where a blockchain hard-forks to undo a hack. It is never used for ordinary disputes or bad manners. A freeze is a hold, not a verdict: it pauses an account to protect everyone else, and it can be lifted. It is human-only (no automation can trigger it), it demands a written justification, and every use — freeze and lift alike — is logged and reviewed. In the normal run of things it should never fire at all.
Effect on trust score
For genuine-fraud signals (like a chargeback or a self-trading match), an unresolved signal of medium severity or higher lowers your trust score by −20 per signal. An honest trust score that reflects a real chargeback protects the people you trade with next — that is protection, not a penalty for its own sake. See /methodology/trust-score for the full model.