Wallet history scoring: using account age and behavior to price sybil risk

Sybil farmers can create wallets for free, but they cannot create history for free. Scoring wallets on age, transaction diversity, funding sources, and behavior over time raises the cost of a fake identity from zero to months of simulated life. It will not catch everyone, and it is not meant to. It changes the economics until farming stops paying.

Why history is expensive to fake

Anyone can generate a thousand addresses in a second. Giving each one a believable past is another matter: transactions across months, interactions with varied contracts, and balances that move like a person moving them. Time is the one input a farm cannot compress.

That asymmetry is the whole strategy. Defenses based on a single action, one captcha, one small purchase, fall to automation in a weekend. Defenses based on accumulated history force the attacker to spend the resource they are trying to save, at scale, in advance, with no guarantee the campaign they are preparing for ever launches.

The signals that carry real weight

Age alone is weak, because farms age wallets in bulk like wine nobody drinks. Age combined with diversity is strong: transactions in different months, with different protocols, in both directions, funded from sources that are not all the same exchange hot wallet or the same parent address.

Negative signals matter as much as positive ones. Wallets funded in identical amounts from one source, minutes apart, moving in lockstep, are a farm even if each wallet looks busy. Score the neighborhood, not just the wallet: related addresses should raise or lower each other scores.

Scoring without punishing privacy-conscious users

Plenty of legitimate users keep fresh wallets for privacy or security, and a blunt history score locks them out of everything. Tier the response: low-history wallets get smaller claim caps, delayed vesting, or manual review queues instead of a hard rejection.

Publish the broad shape of the criteria. Users who know that activity over time counts can choose to participate from their main wallet. Secret scoring feels arbitrary when it bites, and arbitrary systems lose the community trust that makes any of this work.

How farms adapt, and the counter

Farms respond with history-as-a-service: aged wallets with manufactured pasts, sold ready-made. The tell is that manufactured history is regular in ways real life is not: evenly spaced transactions, round amounts, the same contract set in the same order across hundreds of wallets.

Score for irregularity and independence. Real users share almost no exact patterns with strangers. When two hundred aged wallets show near-identical histories, the manufacturing process itself becomes the fingerprint, and the batch falls together.

Setting thresholds you can defend

Every threshold trades farmers caught against users excluded, and the honest place to set it depends on what is being protected. A governance vote and a small faucet should not share a cutoff. Document the trade-off chosen for each program and the data behind it.

Revisit thresholds after each campaign with the appeal results in hand. Appeals are your labeled data: they show which signals wrongly flagged real users. A scoring system that never updates from its mistakes gets more confident and less accurate at the same time.

Frequently asked questions

Is wallet history scoring a form of identity verification?

No. It assesses the behavior of an address, not the identity of a person, and it collects nothing offchain. It is a risk signal for program design, not a KYC process, and it should not be presented as one.

Can a brand-new user ever qualify for anything?

They should always qualify for something, even if it is a smaller tier. Designs that give new wallets literally nothing push newcomers toward buying aged wallets, which feeds the exact market you are fighting.

How far back should history scoring look?

Months to a couple of years covers most signal. Very old activity adds little beyond the two-year mark for most programs, and overweighting ancient history mostly rewards whoever has been around longest rather than whoever is real.

What is the biggest mistake teams make with scoring?

Treating the score as a verdict instead of a dial. Scores should set caps, tiers, and review priority. Hard cutoffs on a single score create cliff-edge unfairness and a clear target for farms to engineer around.

See your own numbers.

A free bot-traffic audit shows the human-automated split in your live traffic - no code changes, no commitment.

Get a free bot-traffic audit

Do allowlists stop mint bots?

They stop the lazy ones. A strict allowlist with real verification, wallet age, activity history, or off-chain identity, filters out stages one and two. Determined operators buy or farm allowlisted wallets, which is why the allowlist is the start of the defense, not the whole of it.

Should mints just accept that bots will get some supply?

Some leakage is realistic, but 'accept' is the wrong frame. Every percentage point of supply that reaches real collectors instead of bots is community goodwill and secondary-market health. The projects that treat bot defense as ongoing maintenance keep more supply in the right hands than the ones that ship one check and move on.

>