The protocol is deployed on Ethereum Sepolia testnet. All amounts are in test USDC with no monetary value.
Opening a Trade
To open a position, you choose four parameters:| Parameter | Description | Example |
|---|---|---|
| Side | LONG (EUR strengthens) or SHORT (EUR weakens) | LONG |
| Tenor | Maturity period: 1 Day, 1 Week, or 1 Month | 1 Week |
| Notional | Face value of the contract in USDC | 10,000 USDC |
| Margin | Collateral to lock (min 2% of notional, max 100%) | 500 USDC (5%, 20x leverage) |
Validates your parameters
Checks that the pair and tenor are enabled, notional meets the minimum (100 USDC), and your margin is within the allowed range.
Calculates your maturity date
Adds the tenor duration to the current time and adjusts to the next business day at 4 PM UTC. Weekend dates roll to Monday.
Locks your entry price
Fetches the current forward price for your maturity date from the oracle. This becomes your entry strike — the reference price for all PnL calculations. It never changes.
Runs risk checks
Verifies that the position does not exceed per-position, per-account, or pool exposure caps.
All parameters that affect a position’s economics — margin rates, fee rates, liquidation penalty — are captured at open time. Admin changes to these parameters only affect future positions, never existing ones.
Managing Your Position
While your position is open, you have several options:Add Margin
Increase your locked margin to reduce leverage and move further from liquidation. This is a rescue operation — it works even when your position is liquidatable.
Remove Margin
Decrease your locked margin to free up collateral. Only allowed when your position is healthy and the remaining margin stays above the minimum initial margin.
Reduce Position
Partially close your position by reducing the notional amount. PnL on the reduced portion is settled immediately. The remaining position stays open at the original entry price.
Increase Position
Add to your position’s notional. The entry price blends your original strike with the current forward price using a weighted average. Only available in Normal mode.
How Your Trade Closes
Every position eventually closes through one of four paths:- Maturity Settlement
- Early Termination
- Liquidation
- Partial Reduction
The standard close path. When your position reaches its maturity date, it settles at the fixing price — the EUR/USD spot price recorded from Pyth at 4 PM UTC on the maturity business day. Settlement happens automatically (the keeper service processes it), but any address can trigger it.
- Fee: Standard trading fee (0.05% of notional)
- No action required from you
Position Status
A position follows a strict one-way transition:Fixing Timestamp Calculation
The maturity date is computed deterministically when you open a position:| Position Opened | Tenor | Fixing Timestamp |
|---|---|---|
| Monday 10 AM UTC | 1 Day | Tuesday 4 PM UTC |
| Friday 10 AM UTC | 1 Day | Monday 4 PM UTC (weekend roll) |
| Thursday 10 AM UTC | 1 Week | Thursday 4 PM UTC (next week) |
| Saturday 10 AM UTC | 1 Day | Monday 4 PM UTC (weekend roll) |
The 4 PM UTC fixing time aligns with the WM/Reuters London Fix used in institutional FX markets. Weekend maturities always roll to Monday.
Next Steps
PnL Calculation
How profit and loss is calculated on your positions.
Margin
Deep dive into margin mechanics, leverage, and liquidation thresholds.
Smart Contract API
Full Position struct, function signatures, and error codes for developers.