{ options desk · giwa l2 }

Earn upfront premium.
In USDC.

Pick a strike and expiry. Lock USDC collateral and receive your premium immediately.

Your maximum loss is fixed before you trade.

indicative previewbtc / usdloading…
expiry
size 0.01 btc
loading price…
premium now
usdc
collateral locked
usdc
testnet maker liquidity
testnet btc inventory
settlement oracle
pyth · first tick after expiry
settlement
physical · delivered at the strike
~/productsphysically settled · european · fully collateralized
cash-secured putkeep the full premium if btc expires at or above your strike. below it you buy btc at that price — the one you named — and you keep the premium.strike × sizeon strike × sizesell puts
covered callkeep the full premium if btc expires at or below your strike. above it your btc is sold at that price — the one you named — and you keep the premium.size, in btcon size, in btcsell calls
~/how-it-works
  1. 01
    request a quote
    black-scholes priced against live pyth spot, valid for 20 seconds
  2. 02
    the desk signs it
    the contract verifies that signature on-chain before anything moves
  3. 03
    collateral locks, premium lands
    preconfirmed in ~200ms on giwa flashblocks — fast enough for short-lived quotes
  4. 04
    expiry settles itself
    pyth fixes the price at expiry; claiming later never changes the outcome
~/faq
which pyth price settles my option?+

the first btc/usd price pyth publishes at or after your expiry timestamp. this is enforced by pyth's parsePriceFeedUpdatesUnique — neither you nor the desk can pick a different tick, and settling later never changes the outcome.

does any btc ever change hands?+

no. positions are cash-settled: at expiry the price difference is paid in usdc out of the locked collateral. btc is only the reference price.

what if the oracle is late or down?+

settlement can be triggered any time after expiry using pyth's archived data, and the price is still the first tick after expiry — so waiting costs nothing. as a documented mvp escape hatch, the owner can settle manually only after a 3-day delay.

can i close a position early?+

not in this mvp — positions run to expiry. your maximum loss is fixed the moment you open, so there is nothing to manage in between.

how is the desk's price set?+

a black-scholes engine prices each quote from live pyth spot; the desk bids below fair value (its spread), which is shown on the ticket. every quote is eip-712 signed, verified on-chain, single-use, and expires in 20 seconds — giwa's ~200ms preconfirmations make that short window practical.

can my quote be front-run?+

no. giwa has no public mempool — only the sequencer sees pending transactions, so a signed quote cannot be seen and traded against before it lands.

what if the desk goes offline?+

open positions are untouched — collateral sits in the contract and settlement only needs the oracle. you just can't open new positions until quoting resumes.