Skip to main content
A tenor defines the maturity period of a forward contract — how long from position open until settlement. Each tenor is a duration in seconds, and the protocol computes the exact maturity timestamp when you open a position.

Available Tenors

TenorDuration (seconds)Settlement
1 Day86,400Next business day at the pair’s fixing time
1 Week604,800Same weekday next week at the fixing time
1 Month2,592,000 (30 days)30 days later at the fixing time
3 Months7,776,000 (90 days)90 days later at the fixing time
6 Months15,552,000 (180 days)180 days later at the fixing time
1 Year31,536,000 (365 days)365 days later at the fixing time
A 60-second test tenor is available in local development environments for rapid testing. It is not enabled on Sepolia or any public deployment.

Dynamic Tenor Registry

Tenors are not a fixed enum. They live in an onchain registry (Config.getEnabledTenors()) that stores uint32 seconds values. The seconds value is the tenor identifier — there is no separate label or ordinal layer. What this means in practice:
  • The protocol ships with the six defaults above plus one test tenor.
  • Operators can register new maturities — e.g. 2 weeks, 9 months, 18 months — with a single admin transaction, without a contract upgrade.
  • Every consumer (app, CLI, agent tooling, analytics) reads the live registry and surfaces new tenors automatically.
  • Positions store their maturity as seconds at open time, so changes to the registry never retroactively affect existing trades.
See Dynamic Registries for how this pattern extends to pairs as well.

Choosing the Right Tenor

Short (1D / 1W)

Event-driven and short-horizon trades
  • Lowest forward premium/discount
  • Fast settlement
  • Ideal around specific data releases (NFP, CPI, central bank meetings)
  • Less time for adverse moves, but also less time for the trade to work

Medium (1M / 3M)

Monthly hedging and quarterly views
  • Moderate forward premium/discount
  • Matches common corporate invoice and payroll cycles
  • Aligned with how interbank FX forward quotes are priced
  • Practical middle ground — enough time for a macro move to develop

Long (6M / 1Y)

Treasury and positioning
  • Largest forward premium/discount
  • Suited to annual budget cycles, subscription revenue hedging, and structured cash flows
  • Use higher margin (lower leverage) — EUR/USD can move 5–10% over a year
  • Liquidity and forward curve depth still evolving in early milestones
If you are unsure which tenor to use, the 1-month tenor offers a practical middle ground. It aligns with standard corporate hedging cycles, gives enough time for FX moves to develop, and keeps the forward premium manageable.

How Maturity Dates Work

When you open a position, the protocol computes your fixing timestamp — the exact moment when your position will settle.
1

Add tenor duration to open time

The raw maturity is your open time plus the tenor duration in seconds. A 3-month position opened Monday at 2 PM UTC has a raw maturity 90 days later at 2 PM UTC.
2

Adjust to next business day at the pair's fixing time

The fixing is set to the pair’s configured fixing time on the next business day at or after the raw maturity. Weekend dates roll forward to Monday.
3

Fixing timestamp is locked

Once computed, the fixing timestamp never changes. This is when the fixing price will be recorded and your position can be settled.
The fixing time is per-pair. EUR/USD fixes at 4 PM UTC (aligned with the WM/Reuters London Fix); USD/JPY fixes at 6 AM UTC (aligned with the Tokyo 15:00 JST fix). See Supported Pairs for each pair’s fixing time.

How Tenor Affects Forward Pricing

Longer tenors produce larger forward premiums because there is more time for the interest rate differential between the base and quote currencies to accumulate.
Assume EUR/USD spot = 1.08000 and a forward rate of 1.5% annualized:
TenorForward PricePremium Over Spot
1 Day1.0800440.4 pips
1 Week1.0803113.1 pips
1 Month1.08133113.3 pips
3 Months1.08399439.9 pips
6 Months1.08798879.9 pips
1 Year1.096000160.0 pips
Longer tenors scale roughly linearly with duration for small rate differentials. At higher forward rates or longer tenors the compounding gap grows.
Onchain: each position stores its tenor as uint32 seconds in the Position struct. Computed: forward prices per tenor are published by the oracle and read at trade time. For runtime lookup in code — including raw-seconds fallback for tenors added after an SDK build — see TypeScript SDK and Code Examples.