We wanted to reward people for liking each other's work. Not with points or badges, but with Đ, the same in-app currency that's already used on generations. The maker earns a little when something they made gets liked, and the person who liked it earns a little for good curation. It's a lovely idea, and it's also harder than it looks, because a like is the cheapest gesture on the internet, and anything cheap to do is cheap to fake. So before we paid out a single Đ, we spent most of our time on one question: how do you reward genuine appreciation without also paying the people who'd game it? This post walks through the answer, one guardrail at a time.
Why this is harder than it sounds
It helps to start with why the obvious version doesn't work, because every guardrail that follows is really just a response to a specific way the obvious version breaks.
The obvious version is to pay a fixed amount of Đ for every like. The trouble is that the moment a like is worth a fixed amount, we stop attracting only people who care about the art and start attracting people who are there for the payout.
The clearest cautionary tale is a public one. X, formerly Twitter, pays creators based on engagement and reach. The problem is that reach is exactly the thing a content thief can manufacture: take someone else's popular post, repost it widely, and collect on the views. When you pay for a metric, you end up rewarding whoever is best at producing that metric, and that's not always the person doing the good work. We did not want to build a smaller version of the same machine.
X is only the most recent example. The last decade is littered with the same lesson, learned over and over: Instagram engagement pods where creators agree to like each other's posts on a schedule, follower farms that sell accounts by the thousand, vote rings on Reddit and Product Hunt. Every one tells the same story. A number got tied to a reward, and people went to work optimizing the number instead of the thing it was supposed to stand for. We took that history as a design brief. We'd rather spend our effort on the experience, on making sure the people paying genuine attention are the ones who benefit, than build a cleverer engagement machine and spend our time chasing whoever games it. The two goals sound close, but they pull the design in very different directions.
Two sides, two kinds of gaming
We decided to reward both sides of a like, because both behaviors are worth encouraging. We want people to make things, and we want people to look closely and surface the good stuff. So the maker earns when their work is liked, and the liker earns for being a thoughtful curator.
Rewarding both sides also means defending both sides, and the two attract different kinds of gaming. The liker side invites spam-liking: tap everything in sight to farm the curation reward. The maker side invites what's usually called a collusion ring, or a like-swap, where two people agree to like all of each other's work so they both collect. A design that only defends one side leaves the other wide open, so we needed an answer for each.
The version we chose not to build
Before the mechanics, it's worth saying what we deliberately left out, because that decision shaped everything else.
There's a version of this feature that would probably boost engagement, and we chose not to build it: pay generously, and put everyone's earnings on a public leaderboard. We left it out because we were genuinely worried about what it would do to the feel of the place. Once money becomes the visible scoreboard, the incentive quietly shifts, from making the thing you actually want to make, toward making the thing that earns. We did not want a feed full of bait.
So we set two rules up front. The reward stays a supplement and never a salary, capped low enough that it isn't worth reorganizing your creative life around. And earnings stay private. There's no public ranking of who earned the most, and there won't be one.
A reward should sit quietly beside the art, not become the reason for it.
A like is worth the trust behind it
Here's the first of the two ideas that do most of the work: a like is only worth as much as the person giving it.
Diffusitron already keeps a quiet trust score for every account. It's built from slow, hard-to-fake signals of being a real, long-term member: how old the account is, whether it has a clean record, whether it genuinely takes part, whether their email is verified and they created a profile. An account that was created a few minutes ago has very little of it. A member who's been around and participated has a lot.
We use that score to weight every like. A like from a trusted member counts for its full value. A like from a brand-new throwaway account counts for almost nothing. This single decision quietly handles the sock-puppet problem, the one where someone spins up a hundred fake accounts to like their own work, because a hundred untrusted likes add up to almost nothing. The accounts are easy to make; the trust behind them is the part we made slow.
You cannot manufacture trust quickly. That is what makes it worth measuring.
A pool, not a faucet
The second idea comes from companies that have already paid creators at scale, and learned some of this the hard way. The YouTube Shorts Fund and the TikTok Creator Fund didn't pay a fixed amount per view. They set aside a fixed pool of money for each period and divided it among creators according to how their work performed.
This is a small change with a large effect. If rewards came from a faucet, where every like minted a fixed amount, the cost would grow with the abuse, and a determined farmer could run it up indefinitely. A fixed pool can't be run up, because it's divided rather than minted. And there's a pleasant property hiding in that: when someone floods the system with fake activity, they don't make the pool any bigger, they just cut it into thinner slices, their own slice included. Farming the pool mostly dilutes the farmer. And our total daily cost is fixed at the size of the pool, so we don't have to take anyone's good behavior on faith to know what the ceiling is.
A fixed pool turns farming into an act of self-dilution.
How a like becomes Đ
With those two ideas in place, here's the actual path a like takes.
Nothing happens the instant you tap the heart. The like is recorded, just as it always was, and no currency moves yet. The real work happens once a day, in what we call a settlement, borrowing the word banks use for the moment a pending charge becomes a real one.
- You like something. It's recorded, just as it always was, and no Đ moves yet. The like itself appears on the work right away; the Đ it might be worth is settled later, overnight.
- Once a day, a settlement job gathers all of that day's likes and gives each one a weight.
- The day's fixed pool is divided in proportion to those weights.
- A few caps are applied, so that no single post or person can take an outsized share.
- The Đ is deposited, and a ledger records who earned what, so every payout can be checked later.
The weight of a single like is the product of a few simple factors:
weight = trust(liker) how much we trust the person liking
x relationship(liker, maker) damped if the two are a tight pair
x repetition(liker, maker) the tenth like from one fan counts less
x originality(post) originals count more than remixes
If the post is flagged, stolen, or self-liked, the weight is simply zero.That's the whole shape of it. Each factor is there to answer a specific way the reward could be gamed, which is what the next section is about.
Where the reward shows up
We wrote most of this before the reward card existed. Now it does, and it's deliberately quiet. The morning after a settlement, a single small card appears on your social screen, in the same understated style as the card that tells you a post was approved to the feed. It's one soft row: a small heart, a LIKE REWARDS label, the amount off to the side as +47 Đ, and a single line beneath reading You got 12 likes, you gave 8. One card, both sides of the heart, the curator side named only as a quiet count.
A few choices in that small card matter more than its size lets on. It doesn't push. Nothing buzzes your phone overnight to tell you that you earned money while you slept; the card is simply waiting the next time you open the app. It's private, visible only to you, with nothing to rank it against. And the counts only include likes that actually earned, so a pile of untrusted likes that weighed nothing never inflates the number you see. The reward sits beside the work, which was the whole point, instead of tapping you on the shoulder to ask for a reaction.

The guardrails, and what each one is for
None of these are secret. We'd rather explain them plainly than hide them, since anything we had to keep hidden to work probably wouldn't hold up for long anyway.
- Diminishing returns per pair. The first like from a fan counts fully. The fiftieth like from that same fan to that same maker counts for very little. This is what makes a like-swap unprofitable: trading likes back and forth quickly runs into the floor.
- A discount for close pairs. When two accounts always travel together, only ever liking each other, we gently reduce the weight of those likes. Collusion tends to live along close relationships, so we lean against them.
- Breadth over virality. Because of the per-post and per-person caps, two hundred likes from two hundred different people are worth more than a thousand likes from one small clique. We're rewarding work that's widely appreciated, not work that went viral with one group once.
- Originals over copies. Because everything posted to Diffusitron was generated on the app and approved by a moderator, we know its provenance. Remixes and refinements earn less than original work, and anything the community flags as stolen earns nothing, and can give back whatever was still pending.
- Settle first, then pay. Because money moves once a day rather than on every tap, we get to look at the whole day at once before paying anyone. That means we can catch and exclude bad activity before it's ever paid out, rather than chasing it afterward.
The daily delay is not a limitation. It is the safeguard.
Watching the whole day
Everything above is about making gaming unprofitable. None of it makes gaming visible, but we wanted to see that, too. A trick that earns nothing today is still worth noticing, because tomorrow someone will find a loophole that pays off.
So the same daily settlement process that weighs the likes also stands back and reads the whole day at once. Before any Đ is deposited, it measures four plain things about the day's activity:
- How much of it came from accounts we haven't learned to trust yet.
- How much of it ran between people who follow each other both ways, which is where a like-swap usually lives.
- How much of it piled up in one person liking one maker.
- How much of it piled up on a single maker.
Each of those is just a percentage, and each has a line it's not meant to cross. Below a minimum number of likes for the day we raise no alarm at all, because small numbers turn into wild percentages over nothing. When a day is busy enough and one of those lines is crossed, we send ourselves a single message saying which ones and by how much. We record all four every day regardless, even on the quiet days when nothing is unusual, so we have an honest history to compare against later.
Two things mattered to us here. The alert goes to a person, not to a rule that acts on its own. A genuinely beloved post can set off the single-maker measure all by itself, and the right answer to that is someone taking a look, not an automatic clawback. And we set the lines deliberately sensitive at first, willing to flag more than we strictly need to, because it's a better user experience to relax a threshold than to tighten it up, which can feel like a punishment. This is the other half of paying once a day. The delay gives us room to notice the subleties before they become a problem.
Make the gaming unprofitable, then watch for it anyway.
What the numbers actually do
None of this touched a real account until we'd watched it behave. We keep a small test bench of invented days, each a different kind of traffic, and run the entire settlement against them so we can read the math before it can do any harm. Since we're being open about the rest, here are the dials we actually run, in full.
pool 50,000 Đ per day, fixed and divided, never minted
split 70% to makers, 30% to curators
rate 5 Đ per unit of weight
caps 500 Đ per maker per day, 100 Đ per liker per day
floor under 25 likes a day never trips an abuse alarmAnd here are five of those invented days fed through the process. Two are ordinary, one is a genuinely popular post, and two are the attacks this whole post has been worrying about.
| A day's likes | Likes | Đ minted | What stood out |
|---|---|---|---|
| Quiet day | 2 | 14 | below the floor |
| Typical day | 8 | 41 | below the floor |
| One viral creator | 200 | 1,500 | single-maker 100% (capped) |
| Two-account ring | 30 | 92 | collusion 100% |
| 40-account pile-on | 40 | 0 | sockpuppet 100% |
The last two rows are the whole point. The forty-account pile-on is the sock-puppet attack, forty fresh and untrusted accounts all liking one maker, and it mints exactly nothing, because forty times almost-zero is still almost-zero and the pool was never going to grow to meet it. The two-account ring is the like-swap, two accounts that follow each other both ways and trade likes thirty times over, and it manages 92 Đ out of a 50,000 Đ pool while lighting up the collusion measure at 100 percent on the way past. The ordinary days pay out the way you'd hope, and the quietest two fall under the daily floor, too small a day to raise any alarm on, though we record their numbers all the same.
The viral day is the honest case that still trips an alarm. Two hundred real fans on one maker looks a lot like a pile-on, which is exactly why a human reads that outcome instead of a rule acting on it. The reward stops at the daily ceiling regardless, so even a runaway favorite can't drain the pool.
Cheating the pool earns a rounding error, and sets off the alarm doing it.
What this costs
No system is free, and we'd rather name the costs than pretend they aren't there.
- New users earn very little at first. Trust takes time to build, so a genuine newcomer's early likes carry almost no weight. That's the mechanism working as intended, but it's a real cost to real people, and it eases only as they stick around.
- The reward isn't instant, and it's easy to miss. It arrives on a daily rhythm rather than the moment you tap. You watch the likes themselves land on your work in real time, but the Đ they're worth settles overnight and waits as a quiet card the next morning, and it can come in lower than a raw count of likes once the weighting is applied. We chose not to ping anyone when it arrives, which genuinely makes it easy to miss. We decided that was the right trade for not turning the app into something that wakes you up about money.
- We can't eliminate gaming, only make it not worth the effort. Any reward bends behavior toward itself a little. We keep that pull weak by keeping the prize small and the pool fixed, but we're not going to claim we reduced it to zero.
- We don't catch every clever copy yet. For now we rely on provenance and on community flags to handle stolen work. Detecting near-identical images automatically is something we'd like to add and haven't built yet.
- Our abuse signals are blunt, and a person reads them. The daily measures we watch are simple percentages, and a genuinely popular post can trip an alarm on its own. We treat a crossed line as a reason to look, never as a verdict, which means the safety net only works if we keep looking. We'd rather say that plainly than pretend a threshold is a judgment.
And one choice we're happy about: we're rolling this out slowly. For a while, the nightly settlement runs as a dry run, computing exactly what it would pay and then paying nothing, so we can watch the real numbers against real traffic before any Đ actually changes hands. The same dry run also records those daily abuse measures, so we get to calibrate the lines against genuine activity before a single alert or payout means anything. We'd rather watch the math for a few weeks than ship it and find out.
What we'd take to the next problem
If you're thinking about building a reward on top of social signals, a few of these lessons should carry over.
- Reward trusted appreciation, not raw reach. A content thief can manufacture reach in an afternoon; the trust weighting is what kept that from paying out for us.
- Use a fixed pool instead of a per-action payout. It caps your cost, and it makes farming dilute the farmer.
- Settle in batches rather than in real time. The delay gives you a window to catch problems before you pay for them.
- Make it unprofitable, then watch it anyway. Pricing the gaming out doesn't let you see it, and you want both. Add a cheap aggregate measure or two over each batch, record them even when nothing looks wrong, and put a person at the end of the alert rather than an automatic punishment.
- Keep the prize small. The simplest way to protect a community from a reward is to make the reward too modest to be worth corrupting.
- Keep earnings private. We left out the public leaderboard because a visible money score is the kind of thing that ends up rewarding the metric rather than the art.
Postscript
Our goal was never really to pay for likes. It was to notice two kinds of people, the ones making things worth appreciating and the ones paying real attention, and to send a little value their way without changing why they showed up in the first place. So we tried to pay out only on the genuine likes, keep the gaming more trouble than it's worth, and otherwise leave the art alone. That's what the whole thing came down to for us.