Agent Wranglers

TNS-12Recommended

Give new accounts low limits until they earn trust

Limit what an account can do in its first days. Cap posts with links, messages to strangers, invitations and uploads per day, and lift each cap after a fixed age and clean history.

How to do it

Spammers and scammers act within minutes of sign-up, and people almost never need those powers on day one. Keep trust levels as data, such as new, basic and trusted, each with its daily caps. Promote an account after a set number of days and actions with no upheld report. Demote it on a strike from Warn before you suspend and count every strike. Show the person a plain message when they hit a cap, with the date it lifts. Costly free features, such as AI calls or exports, have their own caps per account, as Protect free tiers from automated abuse says.

Examples

JavaScript example

const TRUST_LEVELS = {
  new: { minDays: 0, strangerMessagesPerDay: 5, linkPostsPerDay: 0, invitesPerDay: 3 },
  basic: { minDays: 3, strangerMessagesPerDay: 30, linkPostsPerDay: 5, invitesPerDay: 20 },
  trusted: { minDays: 14, strangerMessagesPerDay: 200, linkPostsPerDay: 50, invitesPerDay: 100 },
};

export function trustLevel(account, now = Date.now()) {
  const ageDays = (now - Date.parse(account.createdAt)) / 86_400_000;
  if (account.liveStrikes > 0) return 'new';
  return ['trusted', 'basic', 'new'].find(level => ageDays >= TRUST_LEVELS[level].minDays);
}

Python example

TRUST_LEVELS = {
    "new": {"min_days": 0, "stranger_messages_per_day": 5, "link_posts_per_day": 0, "invites_per_day": 3},
    "basic": {"min_days": 3, "stranger_messages_per_day": 30, "link_posts_per_day": 5, "invites_per_day": 20},
    "trusted": {"min_days": 14, "stranger_messages_per_day": 200, "link_posts_per_day": 50, "invites_per_day": 100},
}

def trust_level(account, now) -> str:
    age_days = (now - account.created_at).days
    if account.live_strikes > 0:
        return "new"
    return next(level for level in ("trusted", "basic", "new") if age_days >= TRUST_LEVELS[level]["min_days"])

How to check

A test signs up a new account and sends messages to 6 strangers in one day. The sixth is refused with the date the cap lifts. The same test on an account aged 14 days with no strikes sends all 6.

For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/trust-and-safety/sign-up-fraud-and-abuse/new-account-limits">Agent Wranglers trust and safety playbook</a>. In code you write, add a comment next to it with the same link.