At its core,
@merkl_xyz is built to be hyper customizable. Most campaigns on Merkl are simple and linear: what you earn is proportional to how long you stay. But we also support more complex mechanics like vesting, slashing on withdrawal, holding periods, and in fact any type of custom stream. So if you have a complex use case you want to run, we'll build it.
But there's a reason most campaigns stay simple. A few insights for anyone considering non-linear campaigns, slashing and the like:
- The more complex the campaign, the more edge cases. Say you implement a slash on withdrawal: what happens when someone moves funds between their own wallets? When an integrator builds on top of your vault and holds positions for thousands of users? Every one of these needs a rule, and every rule is an attack surface. With money at stake, someone will find it.
- Complex non-linear systems often end up keeping the people you wanted to filter out. Sophisticated farmers are also the most mercenary. They have the time to model their payoff, hedge their exposure, and exploit every edge case to the max. With simpler setups, everyone knows what they're getting, and you're not opening loopholes only the most dedicated extractors will use.
- Locks sound like a good idea, but they don't remove the exit, they schedule it. TVL looks sticky until unlock day, then leaves all at once.
- LPs aren't naive. They price in illiquidity and slashing risk, so you need a higher APR to attract the same dollar. Meanwhile, the APR you display becomes a conditional promise nobody can really compare.
- If you need a penalty to keep capital, the incentive is probably masking a product problem. Retention should come from your product and the network effects your incentives help build: integrations, liquidity that attracts more liquidity, users who stay because it's the best place to be. Not from a penalty.