Skip to content

Recognizing Crypto Scams

💡
Before you start

Python 3 and a terminal — that is the whole toolkit. macOS and Linux have Python already; on Windows install it from python.org and tick “Add python.exe to PATH”. Confirm with python3 --version. Nothing here is installed and nothing connects to the internet.

The skill being practised is arithmetic, not suspicion. Advice to “be careful” fails because a good scam is designed to feel safe. What does not fail is checking the numbers, because the numbers in these offers are impossible — and four lines of Python settles in seconds what an hour of worrying cannot.

Why Crypto is a Scam Magnet

Cryptocurrency attracts scammers because of several unique properties: transactions are irreversible, identities are pseudonymous, the technology is complex enough to confuse newcomers, and the potential for large gains creates emotional urgency that overrides critical thinking.

In 2023 alone, crypto scams resulted in billions of dollars in losses globally. The good news: most scams follow recognizable patterns, and learning to identify them is your best defense.

Universal Red Flags

Regardless of the specific scam type, these warning signs appear repeatedly:

  • Guaranteed returns — no legitimate investment can guarantee profits. "Earn 10% daily" is always a scam.
  • Urgency and pressure — "Act now or miss out!" Legitimate opportunities do not evaporate in minutes.
  • Celebrity endorsements — fake tweets, deepfake videos, and impersonation of public figures are rampant. Celebrities do not give away crypto.
  • Unsolicited contact — messages from strangers offering investment opportunities on social media, Telegram, or Discord.
  • Requests for private keys or seed phrases — nobody legitimate will ever ask for these. Nobody.
  • Too good to be true — if an opportunity sounds unrealistically profitable, it is.

Ponzi and Pyramid Schemes

These are traditional scams dressed in crypto clothing:

  • Early investors are paid "returns" using money from new investors
  • The scheme works as long as new money keeps flowing in
  • When recruitment slows, the scheme collapses and most participants lose everything
  • Often disguised as "yield farming," "staking platforms," or "AI trading bots"
⚠️
If returns come from new deposits rather than actual revenue, it is a Ponzi scheme

Ask: where does the profit actually come from? If the answer is vague, involves "proprietary algorithms," or requires you to recruit others, walk away.

Fake Giveaway Scams

These are among the most common crypto scams:

  • A fake account impersonating a celebrity or company posts: "Send me 0.1 BTC and I will send back 1 BTC!"
  • The accounts often look convincing, with stolen profile pictures and thousands of bot followers
  • Fake livestreams on YouTube using deepfake technology have become increasingly common
  • Some scams create fake "verification" sites where you "connect your wallet" — which then drains it

The rule is simple: nobody gives away free cryptocurrency. Anyone who asks you to send crypto first to "verify your wallet" or "unlock your reward" is a scammer.

Impersonation Scams

  • Fake support agents — scammers impersonating exchange or wallet support staff on social media, Telegram, and Discord. Real support will never DM you first or ask for your seed phrase.
  • Fake project teams — impersonating developers of legitimate projects to announce fake airdrops or migration events
  • Romance/friendship scams — building a relationship over weeks or months before introducing a "great investment opportunity" (often called "pig butchering" scams)

Social Media Manipulation

  • Pump and dump groups — coordinated buying to inflate a token's price, followed by insiders selling and crashing it
  • Paid influencer promotions — social media influencers promoting tokens they were paid to advertise, often without disclosure
  • Fake community activity — bot-generated excitement, fake testimonials, and manufactured FOMO (Fear Of Missing Out)

How to Verify Legitimacy

  • Research the team: are they real people with verifiable professional histories?
  • Check independent reviews and discussions, not just the project's own channels
  • Verify website URLs character by character — scam sites use subtle misspellings
  • Look for independent smart contract audits from reputable firms
  • Be skeptical of any project less than a year old with extraordinary claims
  • If in doubt, wait. Legitimate opportunities do not disappear overnight.

Now Test an Offer With Arithmetic, in Five Steps

Every scam in this article rests on a number that cannot be true, and the number is usually printed in the advertisement. In the next twenty minutes you will compound a “guaranteed daily return” until it swallows the world economy, run a recruitment scheme until it collapses and count who lost, price a giveaway from the giver’s side, and total up a recovery scam. Every figure below came from running these files.

1
Compound the “1% a day, guaranteed” promise

Go: open a terminal in a folder you can write to, e.g. cd ~/Desktop (Windows: cd %USERPROFILE%\Desktop).

Do: save this as compound.py and run python3 compound.py. One per cent a day is the most common figure in these offers, precisely because it sounds modest.

stake = 1_000
rate = 0.01                      # "1% per day, guaranteed"

for day in (30, 90, 365):
    value = stake * (1 + rate) ** day
    print(f"after {day:>3} days: {value:>28,.0f} dollars")

world_gdp = 100_000_000_000_000   # roughly the size of the whole world economy
days = 0
value = stake
while value < world_gdp:
    value *= 1 + rate
    days += 1
print(f"\nit passes the entire world economy after {days} days -- {days / 365:.1f} years")

You should see: a modest-looking first month, then the impossibility:

after  30 days:                        1,348 dollars
after  90 days:                        2,449 dollars
after 365 days:                       37,783 dollars

it passes the entire world economy after 2546 days -- 7.0 years

That is the test in one line. If a return can be compounded, and compounding it makes one thousand dollars larger than every economy on earth inside a decade, then the return is not available to anyone — because if it were, its owner would already have all the money there is. The exact size you compare against barely matters; the conclusion survives being wrong by a factor of ten.

If not: if the loop never ends, the multiplication line is value * 1 + rate instead of value *= 1 + rate, so the value is not being kept. OverflowError means rate was typed as 1 rather than 0.01.

2
Run a recruitment scheme until it dies

Go: same folder. These are sold as “community”, “staking pools” or “referral rewards”; the mechanism is always this.

Do: save this as scheme.py and run it. Payouts come from new deposits and nowhere else, and recruitment grows until the pool of possible members runs out.

POPULATION = 100_000             # everyone who could ever be recruited
DEPOSIT = 1_000
PAYOUT = 0.10                    # 10% of your deposit, paid every month

joiners, members, pot, month = 100, 0, 0, 0
while True:
    month += 1
    joiners = min(int(joiners * 1.6), POPULATION - members)
    members += joiners
    pot += joiners * DEPOSIT
    owed = members * DEPOSIT * PAYOUT
    if owed > pot:
        break
    pot -= owed

print(f"the scheme collapses in month {month}")
print(f"people who joined      : {members:,}")
print(f"they paid in           : {members * DEPOSIT:,}")
print(f"left in the pot        : {pot:,.0f}")

You should see: a scheme that works perfectly for twenty months and then does not:

the scheme collapses in month 21
people who joined      : 100,000
they paid in           : 100,000,000
left in the pot        : 436,300

Nothing went wrong. Nobody stole anything in this model, no promise was broken, and the payouts were made in full every single month until the month they could not be. The collapse is not a risk of the design; it is the design. That is why testimonials from happy members prove nothing — in month 20 every member is a happy member.

If not: if it never breaks, the growth factor is high enough that deposits always outpace payouts — check that joiners is capped by POPULATION - members, which is the finite world these schemes forget.

3
Count who actually lost

Go: same folder. “My friend made money” is the strongest argument these schemes have. Test it.

Do: save this as who.py and run it. At 10% a month, a member needs ten months of payouts to get their deposit back.

POPULATION, DEPOSIT, PAYOUT = 100_000, 1_000, 0.10

joiners, members, pot, month = 100, 0, 0, 0
cohorts = []                      # (month joined, how many joined)
while True:
    month += 1
    joiners = min(int(joiners * 1.6), POPULATION - members)
    members += joiners
    cohorts.append((month, joiners))
    pot += joiners * DEPOSIT
    owed = members * DEPOSIT * PAYOUT
    if owed > pot:
        break
    pot -= owed

collapse = month
winners = sum(n for m, n in cohorts if (collapse - m) * PAYOUT > 1)
print(f"collapsed in month {collapse}")
print(f"joined and got their money back or more: {winners:,}")
print(f"joined and lost money                  : {members - winners:,}")
print(f"that is {(members - winners) / members:.1%} of everyone who joined")

You should see: the majority losing, by construction:

collapsed in month 21
joined and got their money back or more: 28,962
joined and lost money                  : 71,038
that is 71.0% of everyone who joined

Your friend who made money is real. So are the seventy-one thousand who did not, and they are quieter, because losing money to something you recommended is not a story people tell. Growth is what makes this inevitable: the later cohorts are always the biggest, so most members are always among the newest.

If not: if winners equals the total, the break-even test is inverted — a member profits only when (collapse - joined) * PAYOUT exceeds 1, meaning more than ten payouts.

4
Price the “send 1, get 2 back” giveaway from the giver’s side

Go: same folder. These arrive as a livestream with a famous face, a pinned reply, or a message from a hacked account.

Do: save this as giveaway.py and run it.

# "Send 1 coin to this address and we will send 2 back."
sent = [0.5, 1.0, 2.0, 1.0, 5.0, 0.2, 1.0, 3.0]
promised_back = [x * 2 for x in sent]

print(f"victims          : {len(sent)}")
print(f"coins they sent  : {sum(sent)}")
print(f"coins promised   : {sum(promised_back)}")
print(f"coins returned   : 0")
print()
print("for the promise to be real the giver would need to fund",
      f"{sum(promised_back)} coins to receive {sum(sent)} --",
      f"a loss of {sum(promised_back) - sum(sent)} coins for no reason")

You should see: the offer stated from the other side of the table:

victims          : 8
coins they sent  : 13.7
coins promised   : 27.4
coins returned   : 0

for the promise to be real the giver would need to fund 27.4 coins to receive 13.7 -- a loss of 13.7 coins for no reason

Ask of any offer: what does the other side get? A giveaway that doubles your money is a person volunteering to lose exactly as much as you gain, to a stranger, at scale. Genuine promotions ask you to sign up, follow or hold — they never ask you to send cryptocurrency first, because a real giver does not need your coins to give you theirs.

If not: if the sums print as long decimals like 13.700000000000001, that is ordinary floating-point rounding and does not affect the point — add round(..., 2) if it bothers you.

5
Total up the scam that targets people who were already robbed

Go: same folder. This one arrives days after a loss, from a “recovery specialist” who found your post in a support group.

Do: save this as recovery.py and run it.

lost = 5_000
fees = [("release fee", 300), ("tax clearance", 750), ("wallet activation", 1_200),
        ("final anti-money-laundering deposit", 2_500)]

paid = 0
for name, amount in fees:
    paid += amount
    print(f"pay the {name:36s} {amount:>6,}   (total paid {paid:>6,})")

print(f"\nrecovered: 0")
print(f"you were down {lost:,}. You are now down {lost + paid:,}.")

You should see: the loss roughly doubling:

pay the release fee                             300   (total paid    300)
pay the tax clearance                           750   (total paid  1,050)
pay the wallet activation                     1,200   (total paid  2,250)
pay the final anti-money-laundering deposit   2,500   (total paid  4,750)

recovered: 0
you were down 5,000. You are now down 9,750.

Look at the shape: each fee is small compared with what is supposedly about to be returned, and each one is the last. That is deliberate, and it is why victims keep paying long past the point where they suspect. The rule that ends it: nobody who can genuinely recover funds needs money from you in advance. Real routes — the police, your bank, the exchange’s compliance team — are paid by someone else or not at all.

If not: ValueError: Invalid format specifier means the :>6, was mistyped — greater-than, six, comma. The list must stay a list of pairs, so each line needs its brackets.

🎉
Check yourself before moving on

Without scrolling up: a colleague shows you eleven months of real, verifiable payouts from a platform paying 8% monthly, and offers to add you. Using step 2 and step 3, what do you say — and what evidence would change your mind? Answer: the payouts being real is exactly what the model predicts before a collapse, so eleven good months is not evidence of anything; and your colleague, having joined early, is likely to profit whatever happens to you. What would change my mind is the answer to one question the schemes cannot answer: where does the money come from when nobody new joins? An audited, verifiable revenue source outside member deposits is the only acceptable answer — and if it existed, the platform would not need recruitment at all.

Now do it without the page: take the next investment offer you actually see — in a group chat, an advertisement, a video — and write its rate into compound.py before you form an opinion of it. Then answer step 4’s question about it: what does the other side get? Two minutes of arithmetic, done before you get interested, is worth more than any amount of caution afterwards.

Summary

  • Guaranteed returns, urgency, and celebrity endorsements are universal red flags
  • Ponzi schemes in crypto disguise themselves as yield platforms or AI trading bots
  • Nobody gives away free crypto — giveaway scams always require you to send money first
  • Verify identities carefully and never trust unsolicited messages
  • When in doubt, do not act. Take time to research independently.
🎉
You can now spot the most common crypto scams!

Next, learn about phishing attacks that specifically target cryptocurrency users.