Blog · August 14, 2026 · 9 min read
Web3 user acquisition: what a real user is, and how to buy more of them
Most user acquisition numbers count connects and claims. A real user is a wallet that did the value action. How to define, measure, and buy acquisition that survives a cohort chart.

Every growth deck in web3 has a number on it labeled “users acquired,” and most of those numbers are fiction. Not because anyone lied, but because nobody defined the word before counting. A wallet connected. A wallet claimed. A wallet clicked a quest and wandered off. Sum those up and you get a figure large enough to put in a fundraising deck and useless for deciding anything. If you want to buy more users, the first thing you have to fix is what a user is.
A user is a wallet that did the thing
Acquisition is not a connect. A wallet connect costs a user nothing and tells you nothing; people connect to check whether a site is a scam and leave. Acquisition is not a claim either, and this is the one that empties treasuries, because a claim looks so much like success. Someone showed up, did a task, took the token, and by every airdrop dashboard you have been “acquired.” Then they sold and left, and the only durable thing you bought was a line on a chart.
A real user is a wallet that performed the action that makes your protocol money. A first swap of real size. A deposit past a threshold you would actually miss if it left. Liquidity that stays through a week of volatility. Pick that action, give it a value, and every downstream question gets easier, because now you are counting people who did something instead of people who were present. This is the same discipline our guide to advertising a crypto project starts from, and it is not optional. If you cannot name the value action, you are not measuring acquisition. You are measuring foot traffic.
Activation and retention, measured onchain
Once acquisition means something specific, the funnel underneath it becomes readable. Take the wallets that converted in a given week and hold them as a cohort. Do not average them into the rest of your traffic. Watch that specific group over time: how many are still doing the value action at day 7, at day 30, how much of your volume in month two comes from wallets you acquired in month one. That is activation and retention, and in most industries it is a mess of survey data and login pings you have to trust on faith.
Web3 has an unfair advantage here, and almost nobody uses it. The cohort does not need to be self-reported, because the wallets keep acting in public. You do not ask a converted user whether they came back; you can see whether they came back. That makes cohort tracking unusually honest. There is no analytics tag to misfire, no attribution window that quietly double-counts, no user who churned but still shows as active because they left the tab open. The wallet either transacted again or it did not. When a channel tells you it acquired 500 users and the day-30 curve for those 500 wallets flatlines by day 3, you have learned the exact thing the connect count was hiding: you rented attention and called it growth.
The arithmetic: CAC only means something next to LTV
A cost per acquired user is half a sentence. Two hundred dollars to acquire a wallet is a catastrophe or a bargain and the number alone cannot tell you which. The other half is what that wallet is worth over its life, and in web3 you are unusually well placed to know, because lifetime value here is not a model. It is a ledger. You do not estimate how much a converted wallet transacts after conversion. You watch it.
This is the arithmetic Specify is built to close. We bill on conversions verified onchain rather than on impressions or clicks, with tiered value billing so a large conversion and a token one are not priced the same. Then we keep tracking the lifetime volume of the wallets we converted, so their LTV is observable rather than assumed. That is what makes a CAC decision real: when Ostium campaigns averaged more than $25,000 in volume per conversion, the acquisition cost was not a hopeful guess against a spreadsheet, it was a small fraction of measured, ongoing activity. You can justify almost any acquisition cost if the lifetime volume is there. You just have to be able to see it, and most teams are flying with the second number blank.
Three traps that eat the budget
The first is paying for sybils twice. One person runs forty wallets, each one connects, claims, maybe does a token swap to look real, and each one bills you as a separate acquisition. You are not buying forty users; you are buying one farmer forty times. This is why Specify ID resolves wallets and devices back to a single human, so the same person cannot be sold to you again under a fresh address. Deduplication is not a nicety in this market. It is most of the honesty.
The second is mistaking a spike for growth. A campaign lands, the chart jumps, everyone screenshots it. But a spike is a shape, not a system. The question is never how high the line went, it is how many of those wallets are still transacting a month later, and a spike that decays to baseline is a cost you have not finished paying. Cohorts catch this and totals hide it, which is exactly why the people selling you totals prefer totals.
The third is celebrating the top of the funnel. Connects, impressions, quest completions and Discord joins all feel like progress because they are large and they are cheap, and they correlate with the value action far more weakly than their size suggests. A report full of top-of-funnel numbers is a report designed to be reassuring rather than true. If a metric would look identical whether or not anyone became a real user, it is not a growth metric.
Buying more of the real thing
Once you know what a user is, buying more of them turns into a short, unglamorous checklist. Insist on verified conversions as the billable event, so you pay for value actions and not for presence. Insist on targeting by observed onchain behavior rather than stated interest; Specify targets across more than 6,000 protocols and 15-plus chains precisely so a campaign reaches wallets that have already done the kind of thing you want them to do, not wallets that once expressed a vibe. Insist on lifetime tracking of the wallets you convert, because a CAC without an LTV beside it is a decision made in the dark. And insist on a holdout.
That last one is the discipline everything else rests on. Incrementality is just keeping a matched audience unexposed and comparing, and crypto wallets convert organically all the time, so without a control group your report will bill you for users who were coming anyway. This is the difference between a channel that grows you and a channel that takes credit for your growth, and it is the one test that separates real acquisition from the airdrop-claim variety. It is also the test KOL spend structurally cannot pass, which is a separate conversation we have had at length. When CoW Swap ran it properly, exposed wallets converted at 6x the holdout across more than 1,500 verified conversions and over $50M in attributed volume, with 14-day attribution doing the bookkeeping. That is not a spike. That is a control group telling you the spend caused the users.
None of this requires a quarter’s budget to find out. It requires one honest definition of a user and one campaign built to measure against it. You can buy that answer for about $1,000, done for you, with a holdout and a report you keep whichever way it breaks. Run it once and the word “acquired” stops being decoration on a slide and starts being a number you can spend against.
