Section 03 / 12

Calls and Puts

Contract specification, worked payoff evaluations for each side, and formal payoff definitions.

Contract Specification

An Oracle option is a European-style contingent claim whose payoff is a deterministic function of the underlying settlement price at a fixed expiry. The underlying is an SPL token, all prices are quoted in SOL, and all contracts are cash-settled in SOL; no transfer of the underlying occurs at settlement.

Each contract is fully specified by the tuple (ω,K,T,M)(\omega, K, T, M):

  • Side ω\omega: +1+1 for a call, −1-1 for a put.
  • Strike KK: the reference price in SOL against which moneyness is measured.
  • Expiry TT: the settlement time. Time to expiry in years is denoted τ=T−t\tau = T - t.
  • Maximum payout MM: the supremum of the payoff function in SOL.

The premium is the upfront consideration paid at issuance and constitutes the holder's maximum loss.

Worked Example: Call

Let spot be S=0.0010S = 0.0010 SOL. Consider a call with K=0.0012K = 0.0012 SOL and M=2M = 2 SOL.

  • For ST=0.0018S_T = 0.0018 SOL, the return relative to strike is (ST−K)/K=0.5(S_T - K)/K = 0.5, so ΠC=2⋅0.5=1\Pi_C = 2 \cdot 0.5 = 1 SOL.
  • For ST=0.0030S_T = 0.0030 SOL, the uncapped value 2⋅1.5=32 \cdot 1.5 = 3 SOL exceeds MM, so ΠC=M=2\Pi_C = M = 2 SOL.
  • For ST≤KS_T \le K, ΠC=0\Pi_C = 0 and the holder's loss equals the premium.

Worked Example: Put

Let spot be S=0.0010S = 0.0010 SOL. Consider a put with K=0.0009K = 0.0009 SOL and M=1M = 1 SOL.

  • For ST=0.00045S_T = 0.00045 SOL, (K−ST)/K=0.5(K - S_T)/K = 0.5, so ΠP=1⋅0.5=0.5\Pi_P = 1 \cdot 0.5 = 0.5 SOL, partially offsetting the mark-to-market loss on a spot position.
  • For ST≥KS_T \ge K, ΠP=0\Pi_P = 0.

Formal Payoff Definitions

Let STS_T denote the settlement price of the underlying in SOL. The vanilla European payoffs per unit of underlying are

ΠCvan(ST)=(ST−K)+,(1)\Pi^{\text{van}}_{C}(S_T) = (S_T - K)^{+}, \tag{1} ΠPvan(ST)=(K−ST)+,(2)\Pi^{\text{van}}_{P}(S_T) = (K - S_T)^{+}, \tag{2}

where (x)+=max⁡(0,x)(x)^{+} = \max(0, x). Under a risk-neutral measure Q\mathbb{Q} with zero rate, the vanilla prices satisfy put-call parity,

C−P=S−K.(3)C - P = S - K. \tag{3}

Oracle contracts are not denominated in units of the underlying. The payoff is instead a fraction of MM proportional to the return of STS_T relative to KK, truncated at MM:

ΠC(ST)=min⁡ ⁣(M,  M⋅(ST−K)+K),ΠP(ST)=min⁡ ⁣(M,  M⋅(K−ST)+K).(4)\Pi_{C}(S_T) = \min\!\left(M,\; M \cdot \frac{(S_T - K)^{+}}{K}\right), \qquad \Pi_{P}(S_T) = \min\!\left(M,\; M \cdot \frac{(K - S_T)^{+}}{K}\right). \tag{4}

Since sup⁡STΠ(ST)=M\sup_{S_T} \Pi(S_T) = M, the liability of each contract is bounded ex ante, which is the property that admits full collateralization. Valuation is derived in Capped Payoffs and Collateral.