Premium calculation
What is the premium?
The premium is what you pay underwriters for taking on your currency risk. You pay it once, when you buy, and never anything more.
It is separate from the platform fee, which goes to the protocol (with a share to the pool's creator). The two together are your total cost:
| Goes to | Amount | |
|---|---|---|
| Premium | The underwriters who back your contract (after a 2% liquidity fee) | Calculated below |
| Platform fee | The protocol and the pool creator | 5% of the premium |
| Total cost | Premium + platform fee |
If you buy through a partner's product, the partner sets the fees you pay on top of the premium, and shows them before you confirm.
There is no network fee to pay, and nothing is charged at expiry except a 2% fee on any payout you receive.
What determines it?
| Input | Who sets it | Effect |
|---|---|---|
| Notional | You | The premium is proportional to it |
| Strike | You | Closer to today's rate: higher premium |
| Limit | You (Limited) or the pool (Open) | Further from the strike: higher premium |
| Tenor | You | Longer: higher premium |
| Pair volatility, jumps and trend | The pricing engine, from market data | More volatile pair: higher premium |
| Today's rate | Market data | Sets where your strike and limit sit |
| Markup for your tenor | The pool's creator | Multiplies the fair price |
How is it calculated?
- The pricing engine works out the fair rate: the fair price for each 1 USDC of notional.
- The pool multiplies it by its markup for your tenor, giving the offer rate.
- The premium is your notional multiplied by the offer rate.
- The platform fee is 5% of the premium.
- Your total cost is the premium plus the platform fee.
| Item | Unit | Notes |
|---|---|---|
| notional | USDC | At least 10 |
| fair rate | fraction of notional, to 6 decimal places | For example 0.017500 is 1.75% |
| markup | multiple, set in hundredths of a percent | From 0.90 to 5.00 (shown as 90% to 500%) |
| offer rate | fraction of notional, to 6 decimal places | Rounded down |
| premium, fee, total | USDC, to 7 decimal places | Each rounded down |
How does it work with numbers?
| Step | Value |
|---|---|
| Notional | 10,000 USDC |
| Today's rate | 1,330 |
| Strike | 1,360 (2.26% above today) |
| Limit | 1,500 |
| Tenor | 30 days |
| Fair rate from the engine | 0.017500 (1.75%) |
| Pool markup for 30 days | 1.15 (115%) |
| Offer rate: 0.017500 × 1.15 | 0.020125 (2.0125%) |
| Premium: 10,000 × 0.020125 | 201.2500000 USDC |
| Platform fee: 5% | 10.0625000 USDC |
| Total cost | 211.3125000 USDC |
The fair rate here is an example. The real figure comes from the engine at the time of your quote.
When can the quote change?
- Before you request it, the price moves with today's rate and the market data.
- A quote is held for 120 seconds. Within that time, the price you see is the price you pay, and the purchase fails rather than charge more.
- After 120 seconds, or once used, the quote is void. A new quote is calculated from the rate at that moment.
- The terms are binding once your purchase is recorded. Nothing about your contract changes after that.
For Open protection the limit depends on today's rate, so the engine re-checks the limit against the rate it priced at. If the rate moves while pricing, the quote is refused and you request again.
What happens at the limits?
| Case | Result |
|---|---|
| Notional below 10 USDC | Refused |
| Strike closer to today's rate than the pool allows | Refused, with the minimum distance shown |
| Payables strike below today's rate or at 2× or more; receivables strike above today's rate or at 0.5× or less | Refused |
| Limit outside the pool's range, or beyond 2× (or below 0.5×) today's rate | Refused |
| Reserve larger than the free capital | Refused: not enough liquidity |
| Max payout over 100× or under 1.5× the premium | Refused by the pricing engine |
| Rounding | Every division rounds down to the smallest USDC unit (0.0000001), so you are never charged a fraction more than the formula |