Why EUR/USD Matters for DeFi
The Gap in Onchain Finance
While USD dominates onchain finance, most crypto companies, protocols, and globally distributed
teams have costs, revenues, or liabilities in EUR. European payroll, invoices from EU vendors,
and treasury management all create EUR/USD exposure that currently has no efficient onchain
hedging solution.
The Largest FX Market
EUR/USD is the single most liquid currency pair in the world. This means reliable, frequently
updated oracle prices, tight confidence intervals, and deep publisher coverage from Pyth Network
— the ideal conditions for a non-deliverable forward (NDF) protocol.
EUR/USD Basics
The EUR/USD exchange rate represents how many US Dollars one Euro is worth:| Rate | Meaning |
|---|---|
| 1.0800 | 1 EUR = 1.08 USD |
| Rate goes up | Euro is strengthening (good for LONG positions) |
| Rate goes down | Euro is weakening (good for SHORT positions) |
Three Price Types
The EUR/USD pair has three distinct price types, each serving a different purpose.Spot Price — current exchange rate
Spot Price — current exchange rate
The real-time EUR/USD rate, sourced from Pyth Network. Pyth aggregates prices from institutional
publishers (exchanges, market makers, trading firms) and provides a confidence-weighted median.
- Used for: Recording the fixing price at settlement
- Freshness: Updated whenever a transaction includes Pyth price data
Forward Price — projected future rate
Forward Price — projected future rate
The expected EUR/USD rate at a future maturity date, computed using the interest rate differential
between EUR and USD. When USD rates exceed EUR rates, the forward trades above spot.
- Used for: Position entry prices, real-time PnL, early termination, liquidation
- Freshness: Published every ~30 seconds by the publisher service
Fixing Price — settlement reference
Fixing Price — settlement reference
The Pyth EUR/USD spot price captured at 4:00 PM UTC on a position’s maturity business day. This
is the authoritative rate for cash settlement.
- Used for: Final PnL calculation at maturity
- Timing: 4 PM UTC, matching the ECB reference rate convention
- Permanence: Once recorded, a fixing price cannot be changed
Why EUR/USD First?
Highest Liquidity
The most traded pair in the world ensures deep, reliable oracle feeds with minimal latency and
high-confidence price data.
Widest Oracle Coverage
Pyth Network has extensive publisher coverage for EUR/USD, providing frequent updates with tight
confidence intervals.
Familiar to Traders
EUR/USD is the pair most traders start with. Its macro drivers (ECB/Fed policy, trade balances)
are widely understood and covered.
USD/JPY
USD/JPY is Nile Markets’ second supported pair — the second-most-traded currency pair globally (~13% of daily FX turnover) and the primary way to express a view on yen strength against USD.USD/JPY Basics
The USD/JPY exchange rate represents how many Japanese Yen one US Dollar is worth:| Rate | Meaning |
|---|---|
| 150.00 | 1 USD = 150 JPY |
| Rate goes up | Yen is weakening against USD (good for LONG positions) |
| Rate goes down | Yen is strengthening against USD (good for SHORT positions) |
Pyth-Native Ordering End-to-End
USD/JPY is registered on-chain using Pyth Network’s native convention:pairId = keccak256("USD/JPY"), base = USD, quote = JPY, price ≈ 150. The same orientation flows through every layer — contracts, subgraph, services, CLI, MCP / x402, and the UI — with no inversion anywhere. A LONG USD/JPY position is long USD / short JPY.
- On-chain pair name:
USD/JPY(matches Pyth feed0xef2c98c8…) - Display label:
USD/JPY - Display decimals: 3
- Pyth exponent: -3 (smaller range than EUR/USD’s -5)
- Fixing time: 16:00 UTC (the WM/Reuters London fix — the same institutional benchmark used for EUR/USD and every other registered pair)
Trading USD/JPY
- CLI: pass
--pair USD/JPYtonile position open,nile oracle price,nile oracle state, andnile simulate open. - MCP / x402: pass
pairId: "0x35b8bafff3570683af968b8d36b91b1a19465141d9712425e9f76c68ff8cb152"to any tool or endpoint that accepts a pair parameter. - App: the pair selector in the top navigation switches the active pair for the trade form, dashboard, and position tables. Side labels (“Long USD”, “Long EUR”) are derived from the pair’s base currency.
Adding Future Pairs
The protocol is designed for multi-currency expansion. Each pair gets independent oracle state, enabled status in the PositionManager, fixing time in Config, and per-(pair, maturity) bucket exposure tracking — while sharing the same USDC liquidity pool. Onboarding a third pair (GBP/USD, USD/CHF, etc.) requires no contract redeploy — operators run an admin script that callsOracleModule.registerPair, PositionManager.enablePair, and Config.setPairFixingTime from the protocol admin key.
For code examples using pair identifiers in TypeScript and Rust, see TypeScript SDK and Code Examples.