UMA introduced KPI options as a mechanism for projects and communities to align incentives. They would expire at a specified date. On that date, the options are redeemable for the underlying rewards based on a payout function set at the beginning of the period.
One limitation with this approach is that teams don’t know how long it will take to reach the goal. Could it be three months or six months? What if there is a bear market while the options are live? It can be challenging to predict this ahead of time.
Event-based expiry enables you to build KPI options which unlock based on a certain event rather than at a time. To extend KPI options to enable this functionality, the Long-Short Pair (LSP) primitive has been upgraded with an event-based expiry function.
How does early event-based expiry work?
On a technical level, the event-based expiry still uses the same LSP contract template with the added ability to expire the contract early if the predetermined condition or metric occurs.
The process of setting up a KPI option is still the same — including setting an expiry time. This expiry date becomes the day that a project could claim the collateral if the metric is not met. The expiry timestamp can be set for an arbitrarily longer-dated timeline and be thought of as the end of the program.
An important note is that the contract can only expire if the KPI metric is met or the time runs out; they cannot be expired under any other conditions. The conditions of what constitutes a valid expiry are set when creating the KPI option parameters and will be included in ancillary data.
Let’s work through an example to illustrate how event-based expiry works:
Let’s imagine a project that wants to reward their community when they reach $1B TVL. Setting up a KPI option follows the same process, except we can now set an extended period — say two years. The metric will naturally be the measure of TVL.
The KPI option contract is launched, followed by the project minting and distributing the options to their community.
Then as time passes, one of two outcomes happen:
- If the $1B TVL metric is met within the two years, the contract is expired and the rewards are unlocked. In this case, the protocol gets $1B TVL, and the community gets their reward. This can happen anywhere within two years.
- If the $1B TVL metric is not met, then in two years the project can redeem its initial reward collateral and reset its targets.
Teams can also get creative with their rewards programs by layering multiple milestone rewards. For example, have community rewards staggered between the $500m, $1B, and $1.5B milestones.
This mechanism can be particularly effective for airdrops or initial token distributions. Consider a token drop: a community member receives an event-based KPI option token in addition to receiving a native token. Using this design, if a target is hit then the airdrop is worth double the value — a win-win for both the project and the community.
KPI options have always allowed teams to have the flexibility to customize the metric they wish to target. UMA’s Optimistic Oracle is a generalized resolution layer that answers any publicly verifiable information, and is responsible for reporting the target data on chain.
What else can you create with event-based expiry?
A project could design tokens that will trade before an IPO or coin launch, and then expire worth the value of the actual token or stock when they are launched.
Since it is an event-based expiry, that event would be the insured one. If the event doesn’t happen before expiry, then the insurance expires. The Optimistic Oracle can arbitrate whether a payout is valid or not.
How to launch your KPI option?
Launching a KPI option program requires no lines of code. To get started, join UMA’s Discord, tag the @superumans, and say “Help us get started with KPI options!”
From there, the SuperUMAns can work on getting your KPI options parameters set and launch the contract. Then you simply need to mint and distribute. For more information, see the KPI option product page.
Inspiration from the original tweet thread.